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因为安全考虑,禁止了浏览器在