【Web安全】跨站点请求伪造CSRF

目录

1、CSRF

 2、CSRF进阶

2.1 浏览器的cookie策略

2.2 P3P头的副作用

2.3 Get?Post?

2.4 Flash CSRF

2.5 CSRF Worm

3、CSRF的防御 

3.1 验证码

3.2 Referer Check

3.3 Anti CSRF Token

3.3.1 Token的使用原则


1、CSRF

黑客伪造一个假的页面,当用户访问该页面后,黑客就会利用你的身份向第三方站点发送一个恶意请求,从而达到某些目的,例如以你的名义发送邮件、发消息,将你卡里的钱转走,删除某篇博客文章等等。

【Web安全】跨站点请求伪造CSRF_第1张图片

 2、CSRF进阶

2.1 浏览器的cookie策略

黑客之所以能以用户的名义发送而已请求,就是因为用户的浏览器成功发送了Cookie。

浏览器持有两种Cookie,一种是“Session Cookie”(临时Cookie),还有一种是“Third-party Cookie”(本地Cookie)。

“Session Cookie”(临时Cookie)没有具体时间,浏览器关闭后自动失效。若一个网站设置了临时Cookie,那么在浏览器的生命周期内,及时打开了新的Tab页,Cookie依然有效。

“Third-party Cookie”(本地Cookie)指定了Expire时间,且保存在本地,只有超过Expire时间之后才会失效。

如果浏览器从一个域的页面中要加载另一个域的资源,出于安全原因,某些浏览器会组织Third-party Cookie的发送。

2.2 P3P头的副作用

P3P Header是W3C制定的一项关于隐私的标准,全称是“The platform for Privary Preferences”。

P3P头主要用于类似广告等需要跨域访问的页面。

如果网页返回给浏览器的HTTP头中包含P3P头,则在某种程度上说,将允许浏览器发送第三方Cookie。在IE下即使是