XSS,就是跨站脚本攻击。就是浏览器渲染HTML的过程中,执行了不被预期的脚本指令,XSS就发生了。
所以,XSS就是一种HTML注入攻击,就是在我们的HTML页面上注入了恶意代码。最典型的就是在发表评论这些页面,在发表的文字内容里携带了恶意的HTML代码
,例如在发表的内容里面携带了这么一段代码:
<script>alert(document.cookie);</script>
如果不对用户发表的内容文字做安全扫描,那么上面的这段代码就成功嵌入到页面当中。当浏览器访问这个页面的时候,这段脚本也将被认为是页面的一部分,从而得到执行,就会弹出对话框显示浏览器的Cookie信息。
这就是XSS攻击的原理
防止XSS攻击需要做很多措施,Nginx添加响应头,是其中的一种措施,但这个并不代表能完全防止XSS攻击。
Nginx通过以下配置,可以添加防止XSS的响应头
http {
add_header X-XSS-Protection "1; mode=block";
}
解释一下这个配置, add_header是Nginx添加响应头的命令,X-XSS-Protection是防止XSS攻击的响应头,它有几个参数值:
值 1 :启用XSS过滤器
值 0:禁用XSS过滤器
mode 参数可以配置过滤器行为。
block: 如果检测到XSS攻击,直接阻止页面加载。
report=<reporting-URI>: 如果检测到XSS攻击,将报告发送到指定的URI。
看一下百度,它也是配置了X-XSS-Protection响应标头