nginx请求头相关漏洞修复(http host&X-XSS-Protection)

发布时间 2023-07-18 16:58:47作者: DbWong_0918

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;