欢迎光临成都祈钰瑶科技有限公司网站!祝您生活愉快!
热线电话: 18982081108
✕

成都服务器托管,成都GPU服务器租用,成都高防BGP宽带租用,成都机柜租用托管

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。

<?php

 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。

<iframe  src="http://www.a.com" > </iframe>

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

   这是因为IE因为安全考虑,禁止了浏览器在<img>、<iframe>、<script>、<link>等标签中发送第三方Cookie。但是firefox是允许发送第三方Cookie的。

   在当前的主流浏览器中,默认会拦截Third-party Cookie的有:IE、Safari;不会拦截的有:Firefox、Opera、Chrome、Android等。

2、P3P头的副作用

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

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

3、CSRF的防御

3.1 验证码

验证码被认为是对抗CSRF***最简洁有效的防御方法,它强制用户必须与应用交互,才能完成最终请求,但是验证码也非万能的,出于用户体验考虑,不可能所有请求都需要用户输入验证码。

3.2 Referer Check

Referer最常见的应用就是防止图片盗链,同理,Referer Check也可以被用于检查请求是否来自合法的"源"

   Referer Check的缺陷在于,服务器并非什么时候都能取到Referer。很多隐私条件下,限制了Referer的发送。

3.3 Anti CSRF Token

现在业界一直的防御方式是使用Token。

   CSRF为什么能***成功,起本质原因是重要的所有参数都是可以被***猜测到的。***者只有预测出URL的所有参数和参数值,才能成功的构造一个伪站的请求;反之,***者无法***成功。

二、点击劫持(ClickJacking)

  点击劫持是一种视觉上的欺骗手段。***者使用一个透明的、不可见的iframe,覆盖在一个网页上,然后又是用户在该网页上操作。

  常见的形式有:Flash点击劫持、图片覆盖***、拖拽劫持与数据窃取、触屏劫持

  防御方式:

  1、frame bustiong

   通常可以写一段JavaScript代码,以禁止iframe嵌套。这种方法叫frame bustiing。

  2、X-Frame-Options

  X-Frame-Option可以说是为了解决ClickJacking而生的,它有三个可选值:

    DENY:浏览器会拒绝当前页面加载任何frame页面;

    SAMEORIGIN:frame页面的地址只能为同源域名下的页面;

    ALLOW-FROM origin:定义允许加载的页面地址。

  除了X-Frame-Options之外,Firefox的"Content Security Policy"以及Firefox的NoScript扩展也能够防御ClickJacking。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。