1.xss的攻击原理
需要了解 Http cookie ajax,Xss(cross-site scripting)攻击指的是攻击者往Web页面里插入恶意html标签或者javascript代码。比如:攻击者在论坛中放一个看似安全的链接,骗取用户点击后,窃取cookie中的用户私密信息;或者攻击者在论坛中加一个恶意表单,当用户提交表单的时候,却把信息传送到攻击者的服务器中,而不是用户原本以为的信任站点
2.攻击方式,防范Xss
- 反射型
就是将带有攻击性的XSS 代码放入到URL中,作为参数提交到服务器,也就是类似Get方式提交表单,服务器响应之后,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS 代码,这个过程就叫做反射性XSS。
经常通过这种方式 植入广告–
- 存储型
存储型类似于post的提交的方式,提交到服务器端(数据库,内训,文件系统==)
- Dom XSS
3.XSS的防范措施
首先代码里对用户输入的地方和变量都需要仔细检查长度和对”<”,”>”,”;”,”’”等字符做过滤;其次任何内容写到页面之前都必须加以encode,避免不小心把html tag 弄出来。这一个层面做好,至少可以堵住超过一半的XSS 攻击
- 编码
encode 编码,entity
- 过滤
用正则过滤一些不合法的输入,比如dom 的相关属性,onerror,onclick,移除用户上传的style,script节点,iframe,link节点等等。这样的会被注入广告,还有一些链接,鼠标经过,触发一些CSRF 攻击。他们都有执行样式和脚本的执行。 - 校正
避免直接对html entity解码
DOM parse 转换(整个字符串解析成DOM字符串,当文本处理),校正不配对的DOM标签