• 【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

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

     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下即使是