189 8069 5689

WEB安全之CSRF&ClickJacking

一、CSRF

创新互联公司"三网合一"的企业建站思路。企业可建设拥有电脑版、微信版、手机版的企业网站。实现跨屏营销,产品发布一步更新,电脑网络+移动网络一网打尽,满足企业的营销需求!创新互联公司具备承接各种类型的成都做网站、网站设计、外贸营销网站建设项目的能力。经过10多年的努力的开拓,为不同行业的企事业单位提供了优质的服务,并获得了客户的一致好评。

CSRF的全名是Cross Site Request Forgery,即跨站点请求伪站。

1、浏览器的cookie策略

     很多***者伪造的请求之所以能在在服务器验证通过,是因为用户的浏览器成功发送了cookie的缘故。

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

     两者的区别在于Third-party Cookie是服务器在Set-Cookie时指定了Expire时间,只有到了Expire时间后Cookie才会失效,所以这种Cookie会保存在本地;而Session-Cookie则没有指定Expire时间,所以浏览器关闭后,Session Cookie就失效了。

     浏览器网站的过程中,若是一个网站设置了Session Cookie,那么在浏览器进程中的生命周期内,即使浏览器新打开了Tab页,Session Cookie也都是有效的。Session Cookie保存在浏览器进程的内存空间中,而Third-party Cookie则保存在本地。

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

     下面这个例子,演示了这一个过程:

      在http://www.a.com/cookie.php中,会给浏览器写入两个Cookie:一个是Session Cookie,另一位Third-party Cookie。

  header("Set-Cookie: cookie1=123;");

  header("Set-Cookie: cookie2=456;expires=Thu,01-Jan-2030 00:00:01 GMT;",false);

?>

      访问这个页面,发现浏览器同时接收(Direction:Recived 第一次接收)了这两个Cookie。

      这时再打开一个新的浏览器Tab页,访问同一个域中的不同页面。因为新Tab页在同一个浏览器进程中,因此Session Cookie将被发送(Direction:Sent 第二次发送到服务器端)。

      此时在另外一个域中,有一个页面http://www.b.com/csrf-test.html,此页面构造了CSRF以访问www.a.com。

      这时却发现,只能发送Session Cookie(Cookie:123),而Third-party Cookie被禁止了。

      这是因为IE因为安全考虑,禁止了浏览器在