XSS:Cross Site Script
恶意攻击者利用web页面的漏洞,插入一些恶意代码,当用户访问页面的时候,代码就会执行,这个时候就达到了攻击的目的。
注)这些恶意代码不一定一定是JavaScript,还可以是Java,VBScript,ActiveX,Flash等。
XSS种类:反射型(非持久性)XSS,存储型XSS,DOM型XSS。
反射型XSS
又称为非持久性XSS,这种攻击往往具有一次性。
流程图解:
存储型XSS
又称持久型XSS,攻击脚本存储在目标服务器的的数据库中,具有更强的隐蔽性。
一般攻击者在论坛,博客,留言板中,在发帖的内容中嵌入XSS攻击代码,帖子被目标服务器存储到数据库中。当用户进行正常访问时,触发XSS代码。
流程图解:
说明:第③④步,因为前面攻击者已经在数据库中写入了一段恶意代码,如果之后用户恰巧查询了这段恶意代码,那么当它返回到前端的时候就会被浏览器解析并执行,通过邮件等方式将用户的cookie等信息发送到黑客的邮箱。
例如:
如图所示,表中被写入了两条包含恶意代码的数据,那么当用户查询id为11这条数据的时候,恶意代码将会被执行。
DOM型XSS
全称是Document Object Model,使用DOM动态访问更新文档的内容。
怎么防止XSS?
输入:
使用正则表达式匹配恶意脚本:
1.识别恶意脚本,定义恶意脚本的格式
2.对脚本的各种变形也要识别(双写,编码等)
输出:
对<> " ' %等符号进行转义
针对类似上面的情况,WAF(web应用防火墙)的规则库里面规定了这些规则,不需要自己写。
效果如下图:
先到这里,还没写完~
视频链接:
https://www.bilibili.com/video/BV1My4y1W7DF?share_source=copy_web