Przeprowadzam pewne testy penetracyjne na moim hoście lokalnym za pomocą OWASP ZAP, który stale zgłasza ten komunikat:
Nagłówek Anti-MIME-Sniffing X-Content-Type-Options nie został ustawiony na „nosniff”
Ta kontrola dotyczy tylko Internet Explorera 8 i Google Chrome. Upewnij się, że każda strona ustawia nagłówek Content-Type i X-CONTENT-TYPE-OPTIONS, jeśli nagłówek Content-Type jest nieznany
Nie mam pojęcia, co to znaczy, i nie mogłem znaleźć niczego online. Próbowałem dodać:
<meta content="text/html; charset=UTF-8; X-Content-Type-Options=nosniff" http-equiv="Content-Type" />
ale wciąż dostaję ostrzeżenie.
Jaki jest prawidłowy sposób ustawienia parametru?
źródło
for servers hosting untrusted content
. W przypadku witryn, które nie wyświetlają treści przesłanych przez użytkowników, nie trzeba tego ustawiać.firefox
obsługuje teraz także ten nagłówek: developer.mozilla.org/en-US/docs/Web/HTTP/Headers/…Opis
Ustawienie
X-Content-Type-Options
nagłówka odpowiedzi HTTP serwera, abynosniff
instruować przeglądarki, aby wyłączały zawartość lub wąchanie MIME, które jest używane do przesłonięciaContent-Type
nagłówków odpowiedzi w celu odgadnięcia i przetworzenia danych przy użyciu niejawnego typu zawartości. Chociaż może to być wygodne w niektórych scenariuszach, może również prowadzić do niektórych ataków wymienionych poniżej. Skonfigurowanie serwera tak, abyX-Content-Type-Options
zwracał zestaw nagłówków odpowiedzi HTTPnosniff
, instruuje przeglądarki obsługujące podsłuch MIME, aby korzystały z dostarczonego przez serwerContent-Type
i nie interpretowały treści jako innego typu treści.Obsługa przeglądarki
X-Content-Type-Options
Nagłówka odpowiedzi HTTP jest obsługiwana w Chrome, Firefox i EDGE, a także innych przeglądarek. Najnowsze wsparcie przeglądarki jest dostępne w tabeli zgodności przeglądarki Mozilla Developer Network (MDN) dla opcji X-Content-Type-Type:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options
Kontrataki
MIME Confusion Attack umożliwia ataki za pośrednictwem stron z treściami generowanymi przez użytkowników, umożliwiając użytkownikom przesyłanie złośliwego kodu, który jest następnie wykonywany przez przeglądarki, które interpretują pliki przy użyciu alternatywnych typów treści, np. Niejawnych
application/javascript
lub jawnychtext/plain
. Może to spowodować atak typu „drive-by download”, który jest częstym wektorem ataku phishingowego. Witryny, które udostępniają treści generowane przez użytkowników, powinny używać tego nagłówka, aby chronić swoich użytkowników. Wspominają o tym VeraCode i OWASP, który mówi:Nieautoryzowane Hotlinkowanie można również włączyć przez
Content-Type
wąchanie. Poprzez hotlinkowanie do stron z zasobami w jednym celu, np. Przeglądanie, aplikacje mogą polegać na węszeniu typu zawartości i generować duży ruch na stronach w innym celu, w którym może to być niezgodne z ich warunkami świadczenia usług, np. GitHub wyświetla kod JavaScript do przeglądania, ale nie do wykonania:źródło
Ten nagłówek zapobiega atakom opartym na „mimach”. Nagłówek ten uniemożliwia Internet Explorerowi wykrywanie przez MIME odpowiedzi poza zadeklarowanym typem treści, ponieważ nagłówek instruuje przeglądarkę, aby nie zastępowała typu zawartości odpowiedzi. W przypadku opcji nosniff, jeśli serwer powie, że treść to text / html, przeglądarka wyświetli go jako text / html.
http://stopmalvertising.com/security/securing-your-website-with-.htaccess/.htaccess-http-headers.html
źródło
W przypadku serwerów Microsoft IIS możesz włączyć ten nagłówek za pomocą swojego
web.config
pliku:I gotowe.
źródło
Nagłówek HTTP odpowiedzi X-Content-Type-Options jest znacznikiem używanym przez serwer do wskazania, że typy MIME reklamowane w nagłówkach Content-Type nie powinny być zmieniane i należy ich przestrzegać. Pozwala to zrezygnować z wąchania typu MIME lub, innymi słowy, jest to sposób na stwierdzenie, że webmasterzy wiedzieli, co robią.
Składnia:
Opcje X-Content-Type: nosniff
Dyrektywy:
nosniff Blokuje żądanie, jeśli żądanym typem jest 1. „styl”, a typ MIME nie jest „text / css” lub 2. „skrypt”, a typ MIME nie jest typem MIME JavaScript.
Uwaga: nosniff dotyczy tylko typów „skryptowych” i „stylowych”. Również stosowanie nosniff do zdjęć okazało się niezgodne z istniejącymi stronami internetowymi.
Specyfikacja:
https://fetch.spec.whatwg.org/#x-content-type-options-header
źródło