XSS攻击定义
XSS Cross Site Scripting 跨站脚本攻击
XSS攻击原理
它允许恶意web用户将代码植入到提供给其它用户使用的页面中
1.攻击者对某含有漏洞的服务器发起XSS攻击(注入JS代码)
2.诱使受害者打开受到攻击的服务器URL(邮件、留言等,此步骤可选项)
3.受害者在Web浏览器中打开URL,恶意脚本执行。
XSS攻击攻击方式
1.反射型
发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。这个过程像一次反射,故叫做反射型攻击。
直接
xss=<img src="null" onerror="alert(1)"> 同源策略
引诱
xss=<p onclick="alert('点我呀~')">点我</p>
iframe 植入广告
xss=<iframe src="http://www.baidu.com"></iframe>
2.存储型
区别,提交代码会存储在服务器端(数据库,内存,文件系统等),下次请求目标页面时不再提交XSS代码
XSS攻击防御措施
1.编码 用户输入的数据,HTML Entity编码
例如把<变成<,把>变成>,浏览器收到以后,就会认为是数据,把<script>作为字符串给显示出来,而不是执行后面的代码!
2.过滤
移除用户上传的DOM属性,如onerror, onclick, onmouseover 等事件属性
移除用户上传的Style节点,Script节点,Iframe节点
body.style.display = none
3.校正
避免直接对HTML Entity编码
使用DOM Parse转换,校正不配对的DOM标签
CSRF Cross Site Request Forgery 跨站请求伪造