XSS的攻击方式:
- 反射型:发出请求时,xss代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,xss代码随响应内容一起传回给浏览器,最后浏览器解析执行xss代码。这个过程就像一次反射,故叫反射型xss。
- 存储型:存储型xss和反射型xss的差别仅在于,提交的代码会存储在服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交xss代码
盗用cookie获取一些敏感信息,破坏正常的页面结构插入一些恶意内容
XSS的防御措施
- 编码:对用户输入的数据进行HTML Entity编码。
- 过滤:移除用户上传的DOM属性,如onerror,onclick,onmouseover等;移除用户上传的style节点,scrip节点,iframe节点等。
- 校正:避免直接对HTML Entity解码;使用DOM Parse转换,校正不配对的DOM标签。