CSRF
跨站请求伪造(Cross-site request forgery) 通常简写为CSRF或者XSRF
攻击者伪造一个请求(这个请求一般都是一个链接),然后欺骗目标用户进行点击,一旦用户点击了请求,整个攻击完成。故CSRF攻击也称为"on click" 攻击
在目标用户登录账号的前提下,点击攻击者伪造的请求,可能造成用户密码被修改等等
CSRF与XSS区别
CSRF是借助用户的权限完成的,攻击者并没有拿到用户的权限
XSS是直接盗取用户的权限,然后实施破坏
防范CSRF
增加token验证
对关键操作增加token参数,token值必须足够随机,每次都不一样
安全的会话管理(避免会话被利用)
- 不要在客户端保存敏感信息(比如身份认证信息)
- 测试 直接关闭、退出时的会话过期机制
- 设置会话过期机制,比如15分钟内无操作,则自动登录超时
访问控制安全管理
- 敏感信息的修改时需要对身份进行二次认证,比如修改账号时,需要旧密码验证
- 敏感信息的修改使用post,而不是get
- 通过http头部中的referer来限制原页面
验证码防御
验证码防御被认为是对抗CSRF最为简单的而且有效的防御方法(需要考虑可用性)
Referer Check防御
Referer Check主要用于防止盗链,同理也可以用来检查请求是否来自合法的源
缺陷:服务器并非任何时候都可以取得Referer,例如https 跳转到 http