XSS 和 CSRF

本文主要记录对于 XSSCSRF 的基本概念和防御措施.

XSS

概念

Cross Site Scripting, 跨站脚本攻击, 主要来源于HTML或JS的代码注入

XSS类型分为3种, 反射型XSS, 存储型XSS, DOM-XSS。

  • 反射型XSS

    直接将用户的输入数据展示到页面中, 后台不保存数据, 属于非持久型 XSS

  • 存储型XSS

    将用户的输入数据不经过处理直接保存到数据库中, 此时其他用户只要请求数据, 返回的都是 XSS 脚本, 属于持久型 XSS

  • DOM-XSS

    修改页面 DOM 形成 XSS

防御措施

  • 永远不要相信用户的输入, 对用户输入数据进行过滤
  • 字符转义
  • 设置 HttpOnly 防止劫取 Cookie

CSRF

概念

Cross Site Request Forgery, 跨站请求伪造, 其原理是借助受害者的 cookie 来骗取服务器的信任, 发出了非用户本意的请求

防御措施

  • 检查 HTTP Referer 字段

    Referer 用于表示请求来源于哪个地址, 对于非白名单内的来源地址, 都忽略请求

  • 添加 TOKEN 验证

参考

https://xwjgo.github.io/2017/10/26/XSS%E5%92%8CCSRF/
http://www.cnblogs.com/imwtr/p/4763457.html