Standardy sieciowe

Standardy sieciowe | Wallidacja

Prawidłowa konfuguracja typów MIME serwera

Wprowadzenie

Wiele serwerów jest domyślnie skonfigurowanych tak, aby określać nieznany typ zawartości jako typ MIME text/plain. Gdy opracowany zostajne nowy rodzaj zawartości administratorom może nie powieść się dodanie nowego typu MIME do konfiguracji serwera sieciowego. Wynikiem takiego niepowodzenia będzie określenie typu MIME nowej zawartości jako text/plain. Jest to główne źródło problemów dla użytkowników przeglądarek opartych na Netscape Gecko, takich jak Netscape 6.x, Netscape 7.x, CompuServe 7, AOL dla Mac OS X oraz Mozilla, które przyjmują typy MIME zgodnie z tym, jak określają je serwery i aplikacje sieciowe.

Czym są typy MIME?

Typy MIME określają rodzaj medium użytego w zawartości e-maila lub w zawartości dostarczonej przez serwery i aplikacje sieciowe. Zadaniem typów MIME jest pomóc przeglądarce internetowej w wyborze metody przetwarzania i wyświetlania zawartości. Przykładem typu MIME może być text/html w normalnych stronach internetowych, application/x-java-applet w apletach Java™ a także application/pdf w dokumentach Adobe PDF.

Przeglądarki internetowe dają znać serwerom, które typy mediów potrafią przetworzyć (sygnalizują też preferencje w stosunku do konkretnych typów), zaś serwery udzielają przeglądarkom odpowiedzi w postaci rządanych mediów oraz zwróceniem zawartości o określonym typie mediów (lub MIME). Tego rodzaju negocjacja typu dostarczanej zawartości pomiędzy przeglądarkami i serwerami sieciowymi jest kluczowym elementem architektury Internety. W rzeczywistości specyfikacja HTTP wymaga, aby przeglądarka internetowa respektowała typ MIME dostarczony przez serwer sieciowy.

Kontekst techniczny

MIME jast obecnie zdefiniowany dokumentach RFC 2045, 2046, 2047, 2048 oraz 2049 zaś zarejestrowane wartości typów MIME dostępne są na stronie IANA | MIME Media Types. Specyfikacja HTTP definiuje zbiór typów MIME, które stosowane są przy opisywaniu różnych rodzajów mediów używanych w Internecie.

Dlaczego stosowanie prawidłowych typów MIME jest ważne?

Example site with text/plain MIME type for an HTML page Jeżeli serwer lub aplikacja sieciowa zawiadomi o nieprawidłowym typie MIME zawartości, wtedy przeglądarka, zgodnie ze specyfikacją HTTP, nie będzie miała jak dowiedzieć się o tym, że autor faktycznie chciał, aby zawartość była przetworzona i wyświetlona w sposób inny niż ten, na który wskazuje zgłoszony typ MIME.

Niektóe przeglądarki internetowe, takie jak na przykład MicrosoftR Internet Explorer, mogą dopuścić źle skonfigurowane serwery i aplikacje sieciowe poprzez zgadywanie jaki powienien być prawidłowy typ MIME. Uchroniło to wielu administratorów od ich własnych błędów, jako że Internet Explorer będzie kontynuował przetwarzanie zawartości zgodnie z planem pomimo błędnej konfiguracji serwera sieciowego, np. wyświetli obraz, który określony jest jako zwykły tekst.

Dlaczego przeglądarki nie powinny odgadywać typu MIME

Nie licząc samego pogwałcenia specyfikacji HTTP złą strategią dla przeglądarki jest próba odgadnięcia typu MIME. Przyczyny tego są następujące:

  1. Utrata kontroli

    Jeżeli przeglądarka zignoruje typ MIME, o którym została powiadomiona, to administratorzy sieci oraz autorzy nie będą dłużej sprawować kontroli nad tym, jak ich zawartość ma być przetwarzana.

    Przykładowo: witryna internetowa przeznaczona dla projektantów stron internetowych może opierać się na pewnych przykładowych dokumentach HTML określonych jako text/html lub też text/plain. Ma to na celu przetworzenie i wyświetlenie danego dokumentu jako HTML lub jako kod źródłowy. Jeżeli przeglądarka spróbuje odgadnąć typ MIME, tego typu opcja nie będzie już dla autora dostępna.

  2. Bezpieczeństwo

    Niektóre rodzaje zawartości, jak na przykład pliki wykonywalne, są z natury niebezpieczne. Dlatego też tego rodzaju typy MIME są najczęściej ograniczone jeżeli chodzi o działania jakie podjąć może przeglądarka, której dostarczona zostanie zawartość takiego typu. Plik wykonywalny nie powinien być uruchamiany na komputerze użytkownika i koniecznie powinien spowodować wyświetlenie okna dialogowego, które zapyta użytkownika czy chce on ściągnąć dany plik.

    Zgadywanie typów MIME przyczyniło się do wykorzystywania luk w zabezpieczeniach Internet Explorera. Luki te umożliwiały złośliwemu autorowi przekazanie nieprawidłowych informacji na temat typu MIME niebezpiecznego pliku opisując go jako bezpieczny typ. Pozwoliło to na obejście normalnego okna dialogowego, w wyniku czego Internet Explorer zgadywał, że ma do czynienia z zawartością o typie pliku wykonywalnego i uruchamiał plik na komputerze użytkownika.

Jak określić prawidłowy typ MIME dla danej zawartości

Należy podjąć kilka kroków, za pomocą których można określić prawidłową wartość typu MIME dla danej zawartości.

  1. Jeżeli zawartość została utworzona za pomocą zakupionego oprogramowania, należy zapoznać się z dostarczoną przez sprzedawcę dokumentacją, aby stwierdzić jakie typy MIME powinne być ustawione dla medów różnego rodzaju.
  2. Warto zapoznać się z rejestrem IANA | MIME Media Types, który zawiera wszystkie zarejestrowane typy MIME.
  3. Jeżeli medium danego typu jest wyświetlane za pomocą wtyczki do Netscape Gecko, należy zainstalować wtyczkę a następnie otworzyć menu Help->About Plug-ins i zapoznać się z typami MIME powiązanymi z danym rodzajem medium.
 

Tytuł oryginału:
Properly Configuring Server MIME Types
Autor:
Tristan Nitot, Netscape Communications
Data publikacji:
09 październik 2007
Tłumaczenie wykonane przez:
Grupa robocza angielski team
Data tłumaczenia:
09 październik 2007