https://shipreadyai.dev/learn/findings/o2-x-content-type-options-missing

> Discover all available pages from the documentation index at https://shipreadyai.dev/llms.txt

# X-Content-Type-Options is not set

A browser may treat an uploaded or user supplied file as a script because it guesses the type.

## Why AI-built apps get this

Response headers are written by nobody. Your framework does not add them, your builder does not add them, and your host adds one or two at most. They are the clearest example of a gap that no tool closes on your behalf, which is why almost every app built by a prompt ships without them.

## Evidence line

GET https://example.com returned no strict-transport-security header

## The fix

Add the response header X-Content-Type-Options: nosniff.

## Prompt

Set the X-Content-Type-Options response header to nosniff on every HTML response. It stops browsers from guessing a file type and running a download as a script. Add it wherever this app sets response headers: the server framework, a middleware, or the hosting platform's headers configuration. Verify by requesting the page with curl -I.
