Cross-site Scripting(XSS) 跨站脚本攻击,主要利用HTML和JavaScript代码注入。
主要原理
网站程序(前端和后端)未对用户提交/请求的数据进行检查和过滤,将包含JavaScript代码的数据直接输出到浏览器解释执行。
类型
- 反射型XSS
反射型XSS只是简单的把用户输入的数据“反射”给浏览器,也就是说需要诱使用户“点击”一个恶意链接,才能攻击成功。反射型XSS也叫作“非持久型XSS”。
- 存储型XSS
主动提交恶意数据到服务器,攻击者在数据中嵌入代码,这样当其他用户请求后,服务器从数据库中查询数据并发给用户,用户浏览此类页面时就可能受到攻击。
- DOM-based XSS
基于DOM的XSS,通过对具体DOM代码进行分析,根据实际情况构造DOM节点进行XSS跨站脚本攻击。
防御
- 输入过滤,对用户提交/请求的数据进行转义或过滤HTML标签
- 输出转义
- 考虑设置HTTP Only Cookie