Web安全漏洞之“反射型XSS “漏洞怎么修复?
上周麒麟服务器的安全检测报告出炉,其中有一条是“反射型XSS”漏洞,而且显示的是高危漏洞,我对服务器安全认知较少,毕竟一直在用开源程序或者成熟的框架,一些基本的安全都完善了,但是整套源码并没有完善这些,所以还得手动,我就想着安装了服务器防火墙就好了,什么sql注入,常见渗透等攻击都会被阻止,结果我太天真了,我居然以为安装了防火墙就完事了,直到我在宝塔系统安装了防火墙之后才明白,防火墙根本用不了,,,好吧那就手动吧,先看看什么是“反射型XSS”
漏洞简介
攻击者可以向网站注入任意的JS代码,来控制其他用户浏览器的行为,从而偷取用户的cookie或者执行任意操作,进而形成XSS蠕虫来对服务器造成巨大压力甚至崩溃
修复建议
进行HTTP响应头加固,启用浏览器的XSS filter Cookie设置HttpOnly,防止XSS偷取Cookie对用户输入参数使用ESAPI进行编码 根据业务逻辑限定参数的范围和类型,进行白名单判断。
如上图所示,来看看怎么解决吧,网上找了一些教程,打开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";
大概位置如下图,差不多就行,位置没有特殊要求:
完成之后保存,重载或者重启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";}
位置放在如图的地方就行,如图酱婶儿的:
注意位置别放错了。完成了保存,然后找到nginx,设置-重载配置即可。
Web漏洞何止这一个,有很多个,还得去一个个修复,而且修复完成好不好用好不知道,此篇仅仅是记录,防止哪天我忘记了,至少我设置完成后,在网页可以看见新增的内容,至于检测之后是否还有此漏洞,我可不打包票,毕竟文章我也搬来的。
相关新闻
Nginx无法加载.woff .eot .svg .ttf等字体文件的解决办法
SVN提交项目时提示 run 'svn cleanup' to remove locks 怎么解决?
网站提示file_get_contents(): SSL: Handshake timed out错误怎么解决
zblogphp显示页面运行信息(耗时、数据插件、内存)的图文教程
PHP使用file_get_contents打开URL获得网页内容及函数超时控制的用法
PHP错误提示open_basedir restriction in effect的解决方案
- 24小时热门
- 精彩新闻