如何修复网站出现的“反射型XSS”漏洞?

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

如何修复网站出现的“反射型XSS”漏洞?

漏洞介绍

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

修复建议

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

如何修复网站出现的“反射型XSS”漏洞?

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

放置位置如图所示

如何修复网站出现的“反射型XSS”漏洞?

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

放置位置如图所示

如何修复网站出现的“反射型XSS”漏洞?

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

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

原创文章,如若转载,请注明出处:https://www.misuan.com/1337.html

发表评论

登录后才能评论