XSS

XSS的全称是 Cross-Site Scripting跨站脚本攻击

是指通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。

造成XSS攻击其实本质上还是因为网站没有过滤恶意代码,与正常代码混在一起之后,浏览器没有办法分辨哪些是可信的,然后导致恶意代码也被执行。

危害

非持久性攻击

不需要存储在服务器中,通过巧妙地构造一个带恶意代码的URL,然后引导用户点击访问,即可实现攻击。

类似于:

<http://abcd.com?q=><script>alert(document.cookie)</script>

实质上它不会生效,因为浏览器已经对针对 script 等一些危险标签的插入做了拦截过滤。

<http://abcd.com?q=><img src="" onerror="alert(document.cookie)" />

然而插入一张图片,浏览器一般不会过滤拦截。接着把 src 置空使其触发 onerror事件 ,间接地执行我们的恶意脚本。

持久性攻击

非持久性攻击需要诱导用户点击恶意链接才能起作用。而持久性攻击则是想办法把恶意代码放到网站的数据库里边存起来,那接下来这个网站所有访问到我这个恶意数据的用户就都遭殃了。

最经典的例子就是把恶意代码放到未作过滤的网站的评论区里。当有用户加载该页面时就会执行恶意代码,即使他什么都没有做。

特点