1 基础知识
– HTML资源类型众多,浏览器会凭响应头“Content-Type”来辨类型,如“text/html”或“image/png”
– 当有些资源的“Content-Type”未定义或错定,某些浏览器会用MIME-sniffing解析类型后执行
– 利用此特性攻击者可以让原本解析为图片的请求被解析为JavaScript
– 因此需使用“X-Content-Type-Options: nosniff”的响应头定义禁止类浏览器的猜测行为
– 如服务有“X-Content-Type-Options: nosniff”声明,则浏览器会拒绝执行不明确的MIME类型
2 最佳实践
2.1 加入替换代码
vim /etc/nginx/conf.d/www.cmdschool.org.conf
加入如下配置,
server { #... proxy_hide_header X-Content-Type-Options; add_header X-Content-Type-Options "nosniff" always; #... }
增加配置后,你需要重载服务使配置生效,
systemctl reload nginx.service
2.2 确认配置
curl -I https://www.cmdschool.org
可见如下显示,
#... X-Content-Type-Options nosniff always #...
参阅文档
=============
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/X-Content-Type-Options
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options
https://cloud.tencent.com/developer/section/1190027
https://www.cnblogs.com/lizm166/p/12627190.html
没有评论