Web安全漏洞之“反射型XSS “漏洞怎么修复

talklee

文章最后更新时间:2021年08月20日已超过951天没有更新。

上周麒麟服务器的安全检测报告出炉,其中有一条是“反射型XSS”漏洞,而且显示的是高危漏洞,我对服务器安全认知较少,毕竟一直在用开源程序或者成熟的框架,一些基本的安全都完善了,但是整套源码并没有完善这些,所以还得手动,我就想着安装了服务器防火墙就好了,什么sql注入,常见渗透等攻击都会被阻止,结果我太天真了,我居然以为安装了防火墙就完事了,直到我在宝塔系统安装了防火墙之后才明白,防火墙根本用不了,,,好吧那就手动吧,先看看什么是“反射型XSS”

漏洞简介

攻击者可以向网站注入任意的JS代码,来控制其他用户浏览器的行为,从而偷取用户的cookie或者执行任意操作,进而形成XSS蠕虫来对服务器造成巨大压力甚至崩溃

修复建议

进行HTTP响应头加固,启用浏览器的XSS filter Cookie设置HttpOnly,防止XSS偷取Cookie对用户输入参数使用ESAPI进行编码 根据业务逻辑限定参数的范围和类型,进行白名单判断。

Web安全漏洞之“反射型XSS “漏洞怎么修复 第1张

如上图所示,来看看怎么解决吧,网上找了一些教程,打开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";

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

Web安全漏洞之“反射型XSS “漏洞怎么修复 第2张

完成之后保存,重载或者重启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";
}

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

Web安全漏洞之“反射型XSS “漏洞怎么修复 第3张

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

Web漏洞何止这一个,有很多个,还得去一个个修复,而且修复完成好不好用好不知道,此篇仅仅是记录,防止哪天我忘记了,至少我设置完成后,在网页可以看见新增的内容,至于检测之后是否还有此漏洞,我可不打包票,毕竟文章我也搬来的。

文章版权声明:除非注明,否则均为李洋个人博客原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (有 2 条评论,5746人围观)
网友昵称:溪门飞雪博客
溪门飞雪博客 V 游客 Google Chrome 86.0.4240.198 Windows 10 x64 沙发
2021-07-01 来自天津 回复
学习了,不错,谢谢博主的分享!
网友昵称:talklee
talklee V 博主 Sogou Explorer Windows 10 x64
2021-07-02 来自天津 回复
@溪门飞雪博客 一起学习,一起进步!

目录[+]