Довідник термінів / X-Content-Type-Options
X-Content-Type-Options
X-Content-Type-Options - це HTTP-заголовок з єдиним значенням nosniff, який забороняє браузеру «вгадувати» тип файлу всупереч заявленому. Браузер довіряє тільки заголовку Content-Type, а не вмісту файлу. Це закриває атаки, коли безпечний з вигляду файл підсовується як виконуваний скрипт.
Перевірте свій сайт
За замовчуванням браузери роблять MIME-sniffing: якщо тип файлу здається неправильним, вони самі намагаються визначити його за вмістом. Це зручно, але небезпечно. Файл, залитий користувачем як картинка, браузер може вирішити виконати як JavaScript, якщо всередині є код.
Значення nosniff вимикає це вгадування. Якщо сервер каже, що файл - це text/plain або image/png, браузер так до нього й ставиться, навіть якщо всередині є щось схоже на скрипт чи HTML.
Заголовок особливо важливий для сайтів, які приймають завантаження від користувачів або віддають файли зі спільних сховищ. Значення тільки одне - nosniff; жодних інших варіантів немає, тому налаштування зводиться до «увімкнути чи ні».
Приклад
X-Content-Type-Options: nosniff
Часті помилки
- Вмикають nosniff, але віддають скрипти й стилі з неправильним Content-Type - тоді браузер, навпаки, відмовляється їх виконувати, і сайт ламається.
- Вважають, що це повноцінний захист від XSS. Це лише одна ланка; головне навантаження несуть CSP і правильні Content-Type.
- Пишуть значення на кшталт X-Content-Type-Options: on. Єдине допустиме значення - nosniff, решту браузер ігнорує.
- Забувають виставити коректний Content-Type на самому сервері й покладаються на sniffing, який nosniff якраз і вимикає.
Повʼязані терміни
Знайшли проблеми?
Повільний хостинг, проблеми з SSL або сайт часто лежить? Переїжджайте на TomisHost: швидкий хостинг з безкоштовним SSL, щоденними бекапами та допомогою з переносом.
Хостинг TomisHost