CSRF

攻击者诱使用户访问了一个页面,就以该用户身份在第三方站点里执行了一次操作

浏览器的Cookie策略

浏览器所持有的cookie分为两种,一种是“Session Cookie”,又称“临时Cookie”;另一种是“Third-party cookie”,也称为本地cookie

本地cookie有一个Expire时间,临时cookie在浏览器关闭的时候就失效了

IE等部分主流浏览器默认禁止了浏览器在<img> <iframe> <script> <link>等标签中发送第三方cookie

P3P头

P3P Header是W3C制定的一项关于隐私的标准,全称是The Platform for Privacy Preferences

如果浏览器的HTTP头中包含有P3P头,则在某种程度上来说,将允许浏览器发送第三方Cookie。在IE下即使是<iframe><script>等标签也将不再拦截第三方Cookie的发送

GET & POST

攻击者可以在一个IFrame中构造form表单从而通过POST来CSRF

FLASH CSRF

flash也可以发起网络请求,包括POST

IE6 IE7中还可以带上本地Cookie

防御CSRF

验证码

用户体验不佳

Referer Check

被用于检查请求是否来自合法的源

但是服务器并非什么时候都能读取到Referer,而且在一些情况下Referer可以修改

Anti CSRF Token

CSRF的本质:重要操作的所有参数都是可以被攻击者猜测到的

可以新增一个参数Token,同时放在表单和Session中

Token使用过一次后要记得更换

通过XSS读取Token从而CSRF称为XSRF