建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

设置Set-Cookie为HttpOnly防止反射型XSS漏洞

GG网络技术分享 2025-03-18 16:05 1


最近在检测网站的时候,发现其中有一条是“反射型XSS”漏洞,而且显示的是高危漏洞,建议添加设置Set-Cookie为HttpOnly,这样可以防止一些文件不含Cookie,如何解决呢?这里就分享一篇文章说一下设置Set-Cookie为HttpOnly防止反射型XSS漏洞。

什么是“反射型XSS”漏洞

漏洞简介 攻击者可以向网站注入任意的JS代码,来控制其他用户浏览器的行为,从而偷取用户的cookie或者执行任意操作,进而形成XSS蠕虫来对服务器造成巨大压力甚至崩溃 修复建议 进行HTTP响应头加固,启用浏览器的XSS filter Cookie设置HttpOnly,防止XSS偷取Cookie对用户输入参数使用ESAPI进行编码 根据业务逻辑限定参数的范围和类型,进行白名单判断。

设置Set-Cookie为HttpOnly防止反射型XSS漏洞插图

如上图所示,来看看怎么解决吧。

Nginx环境解决方案

首先是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元礼包,点我领取

大概位置如下图,差不多就行,位置没有特殊要求:

设置Set-Cookie为HttpOnly防止反射型XSS漏洞插图1

完成之后保存,重载或者重启nginx服务器,重启之后我们打开网站,会在HTTP头部增加Cookie设置“HttpOnly”属性,此方案就是通过程序(JS脚本、Applet等)将无法读取到Cookie信息,将HttpOnly 设置为true 防止程序获取cookie后进行攻击。

另外一种解决方案,此方案只支持 proxy 模式下设置。

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";

}

位置放在如图的地方就行,如图酱婶儿的:

设置Set-Cookie为HttpOnly防止反射型XSS漏洞插图2

注意位置别放错了。完成了保存,然后找到Nginx,设置-重载配置即可。

标签:

提交需求或反馈

Demand feedback