HTTP Headers X-Content-Type-Options Nosniff

X-Content-Type-Options - HTTP - MDN Web Docs

HTTP Headers X-Content-Type-Options MIME Type Sniffing

Binnenland: Tech; X-Content-Type-Options: De HTTP Header X-Content-Type-Options response is een markering die door de server wordt gebruikt om aan te geven dat de MIME type die worden geadverteerd in de kopteksten van X-Content-Type-Options niet moeten worden gewijzigd en gevolgd. Dit maakt het mogelijk om af te zien van MIME type sniffing, of, met andere woorden, het is een manier om te zeggen dat de webmasters wisten wat ze aan het doen waren.

MIME type Sniffing

Deze Header werd geïntroduceerd door Microsoft in IE 8 als een manier voor webmasters om het sniffing van inhoud die plaatsvond te blokkeren en niet uitvoerbare MIME type om te zetten in uitvoerbare MIME type. Sindsdien hebben andere browsers het geïntroduceerd, zelfs als hun MIME sniffing algoritmen minder agressief waren.

Webservers moeten het bestandstype opgeven voor het downloaden van bestanden, maar soms proberen browsers zo behulpzaam mogelijk te zijn en raden ze het bestandstype door er stukjes van te lezen. Dit kan leiden tot beveiligingsproblemen. Een browser kan bijvoorbeeld een bestand met de naam index.html downloaden met een applicatiecode en een virus. Nu denkt een gebruiker dat het een HTML bestand is en dus veilig om te downloaden, maar als de browser zich realiseert dat het een applicatie is en deze download en uitvoert. Met de HTTP Header Header X-Content-Type-Options kunt u de browser laten weten dat, zelfs als de inhoud van het bestand er anders uitziet dan wat de server zei dat het was, het nog steeds moet worden behandeld als het bestandstype waarvan is verteld dat het was, en niet probeer het bestandstype te raden.

Voeg de X-Content-Type-Opties Toe aan uw .htaccess:

Nosniff Header toe aan uw webserver. In Apache zou dat worden ingesteld met de volgende config:

Header always set X-Content-Type-Options: "nosniff"

De Header X-Content-Type-Options hierboven, is het niet alleen maar Selecterenkopiëren > Plakken in de .htaccess bestand, je behoord wel te weten wat deze code doet op jouw website. En iedere website is verschillend of server instelling kan een andere werking geven in het geheel.

Wanneer je website bestanden laadt, bijvoorbeeld een stylesheet, dan wordt het X-Content-Type-Options ook bij dit bestand gezet. In het voorbeeld van een stylesheet zul je zien dat het type is: text/css.

Stel je hebt op je website de mogelijkheid dat bezoekers bestanden mogen uploaden, en iemand upload een uitvoerbaar bestand (een exe) verstopt als stylesheet en met type text/css. Wanneer de browser dit bestand wil laden, dan zal de browser kijken naar het bestand en naar aanleiding van de aard van het bestand bepalen (raden) hoe het geïnterpreteerd moet worden. Is het een uitvoerbaar bestand, dan zal de browser het ook zo willen openen (ondanks dat als type ingesteld staat text/css).

Wanneer dus een bestand geüpload wordt dat een stylesheet lijkt, maar in werkelijkheid een stuk kwaadaardige code is, dan zal dit bestand als zodanig worden uitgevoerd.

Wanneer je de X-Content-Type-Options security header instelt, dan vertel je de browser dat hij niet meer mag raden, maar het bestand moet interpreteren zoals staat aangegeven.