nginx请求头相关漏洞修复(http host&X-XSS-Protection)
nginx请求头相关漏洞修复(http host&X-XSS-Protection)
参考链接:Nginx常见漏洞处理 - 码农教程 (manongjc.com)
Web应用漏洞-NGINX各类请求头缺失对应配置 - 漂泊~~~ - 博客园 (cnblogs.com)
Nginx 中 $host 和 $http - 行业资讯 - 电子产品设计开发与电子技术学习交流! (52dianzi.com)
检测到目标URL存在http host头攻击漏洞
修复建议:
web应用程序应该使用SERVER_NAME而不是host header。
在Apache和Nginx里可以通过设置一个虚拟机来记录所有的非法host header。
在Nginx里还可以通过指定一个SERVER_NAME名单,Apache也可以通过指定一个SERVER_NAME名单并开启UseCanonicalName选项。
修复参考示例:
# HTTP host头攻击的技术NGINX防护 xxx.com为server_name
if ($http_Host != 'xxx.com'){
return 403;
}
或者
if ( $host !~* 'xxx.com' )
{
return 403;
}
nginx中的$http_Host和$host的关系
- $http_host 始终等于 HTTP_HOST 请求标头.
- $host 等于 $http_host,小写且不带端口号(如果存在),除非HTTP_HOST 不存在或为空值.在这种情况下,$host 等于处理请求的服务器的 server_name 指令的值.
检测到目标X-XSS-Protection响应头缺失
修复建议:
将您的服务器配置为在所有传出请求上发送值为“1”(例如已启用)的“X-XSS-Protection”头。
对于 Apache,请参阅: http://httpd.apache.org/docs/2.2/mod/mod_headers.html
对于 IIS,请参阅:
https://technet.microsoft.com/pl-pl/library/cc753133(v=ws.10).aspx
对于 nginx,请参阅:http://nginx.org/en/docs/http/ngx_http_headers_module.html
修复示例:
#在nginx的server里面配置
add_header X-XSS-Protection "1; mode=block";
或者
# 0:# 禁用XSS保护;
# 1:# 启用XSS保护;
# 1; # mode=block:启用XSS保护,并在检查到XSS攻击时,停止渲染页面(例如IE8中,检查到攻击时,整个页面会被一个#替换);
# 浏览器提供的XSS保护机制并不完美,但是开启后仍然可以提升攻击难度,总之没有特别的理由,不要关闭它。
add_header X-Xss-Protection: 1;
add_header X-Xss-Protection: mod=block;
您能读到这儿,我呢是发自真心的感谢您,若要转载,还望请您带上链接