特点: 此时'nginx'不返回'Content-Type'响应头,完全由'浏览器'自行判断
②
浏览器默认行为
1) 互联网上的资源有'各种类型',通常浏览器会根据'响应头的Content-Type字段'来'分辨'它们的类型
2) 例如:"text/html"代表html文档、"image/png"是PNG图片、"text/css"是CSS样式文档
3) 然而'有些资源的Content-Type'是'错的'或者'未定义[最常见]'
ps:这时某些浏览器会'启用MIME-sniffing'来'猜测'该资源类型,'解析'内容并'执行' --> "默认"
1、给一个html文件指定Content-Type为"text/plain",在IE8中会被当做html来解析
2、利用浏览器的这个特性,攻击者甚至可以让'原本应该解析为图片'的请求被解析为'js'
遗留: X-Content-Type-Options: nosniff --> "禁用浏览器的类型猜测行为"
+++++++++++++++++++ "案例讲解" +++++++++++++++++++
# 1) 取消nginx'默认'的 mime.types配置
types { }
# 2) 指定css文件返回指定content-type
default_type text/html;
③
问题引入
1、资源'展示'
2、这里'简化'nginx.conf配置,只做了'核心'说明
3、测试'现象'
现象: url请求'.css和.js 静态文件',nginx 返回的Content-Type是'text/html'
chrome '报错':
1、Refused to execute script from 'xxx.js'
2、because its MIME type ('text/html') is not executable,
3、and strict MIME type checking is enabled
强调:作为'运维人员',尽可能的'保留'和'还原'案发的'事故'现场
疑惑:为什么没有根据'mine.type'返回正确的'Content-Type'?
现象及其相似
index.html 'meta text/html' 中通过'<script src="js/min.wzj.js">'相对路径'加载'文件
++++++++++ "题外话" ++++++++++
location ~* min.wzj.js$ {
alias /home/kiosk/WebstormProjects/form/js/min.wzj.js
location和alias的搭配问题
1、原因:是不是'原来'是好的,然后加了'安全加固'造成的
add_header X-Content-Type-Options: nosniff
2、观察: 是'nginx返回静态资源'还是后端'返回'的
通过'$upstream_addr'或'sent_http_content_type'判断
备注:对比'$upstream_http_content_type'和'sent_http_content_type' -->"加工处理"
补充: 定义一个'独一无二的响应头[加always]'放到对应的location中,看'到底生效了没'?
附加: 在client看'异常url'的响应体,也'可以'辅助理解
1、如果是'后端返回错误的Content-Type',nginx如何能拦截? --> 'proxy_hide_header'
2、如果是'nginx自身返回错误的Content-Type',如何排查呢?
3、诡异: nginx把'图片'识别为'text/html',加了add_header都'不管用'
4、遗留: nginx是根据'$request_uri'还是'$uri' 是查找'静态'资源?
相关配置说明
遗留:add_header '显示添加'会不会'影响'default_type?
思考:如果Content-Type'请求头'只有有限的几个,与响应头(Content-Type)'协商不一致'呢?
探究:原来虽然配置了安全头,但是'add_header'作用域覆盖了,导致'没有生效'
④ 参考链接
css 的content-type为"text/html" 不是 "text/css" html兼容性
解决css文件返回格式Content-TYpe为text/html问题
php-fpm处为通配符"/",使得所有请求均会被php-fpm处理,导致css文件的响应头出错
浏览器strict MIME type checking问题处理
为 CSS 设置正确的 Content-Type
Java Web 发送请求 CSS文件 和 JS文件引用失败
中间件为IIS,网站根目录下找到“web.cofig”文件,没有则新建该文件。复制以下代码,粘贴到web.cofig文件中(新建全部复制,已有复制system.webserver)
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<httpProtoc...
X-Content-Type-Options HTTP 消息头相当于一个提示标志,被服务器用来提示客户端一定要遵循在 Content-Type 首部中对 MIME 类型 的设定,而不能对其进行修改。https://stackoverflow.com/questions/21322295/how-can-i-add-x-content-type-options-nosniff-to-all-the-response-headers-from找到配置文件。apache的解决办法。
接着,我们检查了响应头中是否包含了'x-content-type-options'字段,如果不存在,就手动设置该字段的值为'nosniff',以确保浏览器对响应内容的解析不会发生意外的变化。最后,我们使用`assert`语句来验证'x-content-type-options'字段的值是否已经正确地设置为'nosniff'。通过以上的步骤,我们可以在使用requests库的2.20.0版本时,有效地解决缺失'x-content-type-options'头部字段的问题,从而提高了请求的安全性和可靠性。
接上篇,nginx配置系列
HTTPS现在已经很流行,特别是AppStore上线的应用要求使用HTTPS进行通信,出于安全考虑也应该使用HTTPS,HTTPS配置需要准备证书文件,现在也有很多免费证书可以申请,比如阿里云
证书相关有两个文件,一个key文件server.key,一个证书文件server.crt(证书文件的格式有很多(pem,p12,crt等)一般使用pem或crt,nginx都...
X-Content-Type-Options 是一种 HTTP 响应头,用于控制浏览器是否应该尝试 MIME 类型嗅探。如果启用了 X-Content-Type-Options,浏览器将遵循服务器提供的 MIME 类型,用于防止浏览器执行 MIME 类型错误的响应体(response body)。
简单理解为:通过设置"X-Content-Type-Options: nosniff"响应标头,对script和styleSheet在执行是通过MIME 类型来过滤掉不安全的文件
服务器发送含有"X-Content-Type-Options: n...
server{
add_header X-Frame-Options SAMEORIGIN;
add_header X-XSS-Protection '1;mode=block';
add_header X-Content-Type-Options nosniff;
X-Frame-Options:
有些资源的Content-Type是
攻击者利用透明的、不可见的iframe,覆盖在一个网页上,此时用户在不知情的情况下点击了这个透明的iframe页面。X-Content-Type-Options 响应头相当于一个提示标志,被服务器用来提示客户端一定要遵循在 Content-Type 首部中对 MIME 类型 的设定,而不能对其进行修改,这就禁用了客户端的 MIME 类型嗅探行为。web浏览器在响应头中缺少 X-Download-Options,这将导致浏览器提供的安全特性失效,更容易遭受 Web 前端黑客攻击的影响。
文章目录一 反向代理二 负载均衡其他配置信息proxy_next_upstreamproxy_connect_timeoutproxy_send_timeoutproxy_read_timeoutproxy_upstream_fail_timeout三 Nginx动静分离什么是动静分离静态资源的类型动静分离的好处缓存Nginx缓存配置压缩配置信息四 防盗链防盗链配置五 跨域访问
一 反向代理
nginx反向代理的指令不需要新增额外的模块,默认自带proxy_pass指令,只需要修改配置文件就可以实现反向代理
如果需要找的漏扫问题,可以在评论区发言,我看到就会回复。
检测到目标X-Content-Type-Options响应头缺失
add_header 'Referrer-Policy' 'origin';
检测到错误页面web应用服务器版本信息泄露
修改404页面及500页面,不要出现apache、nginx等字样
检测到目标Referrer-Policy响应头缺失
add_header 'Referrer-Policy' 'origin';
检测到目标X-XSS-Protection响应头缺失
大聪明开发的应用系统已经上线三年了,然而就在昨天依然被扫描出了一个漏洞 —— 远程 Web 系统应用程序不采取措施来减轻一类 Web 应用程序漏洞,说白了就是远程网络应用程序不设置 X-Content-Type 响应头。刚看到扫描报告的时候还真有点麻爪,不知道如何下手,最后经过一番努力还是成功的修复了这个漏洞,那么借此机会,大聪明就和大家分享一下如何修复此类漏洞。