Information
The X-Content-Type-Options header instructs the browser to strictly follow the MIME types declared in the Content-Type headers and not to guess (\"sniff\") the content type based on the file's actual content.
Implementing the X-Content-Type-Options header with the nosniff directive helps to prevent drive-by download attacks where a user agent is sniffing content types in responses.
This header prevents \"MIME type confusion\" attacks. Without this header, browsers might interpret a file declared as text (e.g., snippet.txt ) as executable if it contains script code. Setting the nosniff directive forces the browser to reject the file if the declared type doesn't match the context in which it's loaded (e.g., loading a text file as a script).
Solution
Open the NGINX configuration file that contains your server blocks. Add the below line into your server block to add X-Content-Type-Options header and direct your user agent to not sniff content types.
add_header X-Content-Type-Options \"nosniff\" always;
Impact:
Low Risk: In rare cases, legacy applications or misconfigured servers might rely on the browser's ability to correct wrong Content-Type headers (e.g., serving JavaScript with a text/plain header). Enabling nosniff will break these applications because the browser will refuse to execute the script. Ensuring correct MIME types in the NGINX configuration ( mime.types ) is a prerequisite.