XSS

Cross-site Scripting(XSS) 跨站脚本攻击,主要利用HTML和JavaScript代码注入。

主要原理

网站程序(前端和后端)未对用户提交/请求的数据进行检查和过滤,将包含JavaScript代码的数据直接输出到浏览器解释执行。

类型

  • 反射型XSS

反射型XSS只是简单的把用户输入的数据“反射”给浏览器,也就是说需要诱使用户“点击”一个恶意链接,才能攻击成功。反射型XSS也叫作“非持久型XSS”。

  • 存储型XSS

主动提交恶意数据到服务器,攻击者在数据中嵌入代码,这样当其他用户请求后,服务器从数据库中查询数据并发给用户,用户浏览此类页面时就可能受到攻击。

  • DOM-based XSS

基于DOM的XSS,通过对具体DOM代码进行分析,根据实际情况构造DOM节点进行XSS跨站脚本攻击。

防御

  • 输入过滤,对用户提交/请求的数据进行转义或过滤HTML标签
  • 输出转义
  • 考虑设置HTTP Only Cookie

参考资料