Products
GG网络技术分享 2025-03-18 16:05 1
最近在检测网站的时候,发现其中有一条是“反射型XSS”漏洞,而且显示的是高危漏洞,建议添加设置Set-Cookie为HttpOnly,这样可以防止一些文件不含Cookie,如何解决呢?这里就分享一篇文章说一下设置Set-Cookie为HttpOnly防止反射型XSS漏洞。
漏洞简介 攻击者可以向网站注入任意的JS代码,来控制其他用户浏览器的行为,从而偷取用户的cookie或者执行任意操作,进而形成XSS蠕虫来对服务器造成巨大压力甚至崩溃 修复建议 进行HTTP响应头加固,启用浏览器的XSS filter Cookie设置HttpOnly,防止XSS偷取Cookie对用户输入参数使用ESAPI进行编码 根据业务逻辑限定参数的范围和类型,进行白名单判断。
如上图所示,来看看怎么解决吧。
首先是Nginx环境的,打开nginx.conf,文件位置一般在安装目录 /usr/local/nginx/conf 里,如果是宝塔那就直接在站点设置,文件配置添加如下代码:
add_header Set-Cookie "Path=/; HttpOnly; Secure";add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
什么?还没安装BT宝塔面板?点击进行下载安装
宝塔服务器面板,一键全能部署及管理,送你3188元礼包,点我领取
大概位置如下图,差不多就行,位置没有特殊要求:
完成之后保存,重载或者重启nginx服务器,重启之后我们打开网站,会在HTTP头部增加Cookie设置“HttpOnly”属性,此方案就是通过程序(JS脚本、Applet等)将无法读取到Cookie信息,将HttpOnly 设置为true 防止程序获取cookie后进行攻击。
另外一种解决方案,此方案只支持 proxy 模式下设置。
要通过Nginx配置SameSite,可以在 nginx.conf 的 location 节点下进行配置:
location /api {proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 在这里设置
proxy_cookie_path / "/; httponly; secure; SameSite=Lax";
}
位置放在如图的地方就行,如图酱婶儿的:
注意位置别放错了。完成了保存,然后找到Nginx,设置-重载配置即可。
Demand feedback