WEB安全之CSRF&ClickJacking

一、CSRF

創(chuàng)新互聯(lián)公司"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設(shè)擁有電腦版、微信版、手機版的企業(yè)網(wǎng)站。實現(xiàn)跨屏營銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡(luò)+移動網(wǎng)絡(luò)一網(wǎng)打盡,滿足企業(yè)的營銷需求!創(chuàng)新互聯(lián)公司具備承接各種類型的成都做網(wǎng)站、網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè)項目的能力。經(jīng)過10多年的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質(zhì)的服務(wù),并獲得了客戶的一致好評。

CSRF的全名是Cross Site Request Forgery,即跨站點請求偽站。

1、瀏覽器的cookie策略

     很多***者偽造的請求之所以能在在服務(wù)器驗證通過,是因為用戶的瀏覽器成功發(fā)送了cookie的緣故。

     瀏覽器所持有的cookie分為兩種:一種是"Session Cookie",又稱"臨時Cookie";另一種是"Third-party Cookie",也稱"本地Cookie"。

     兩者的區(qū)別在于Third-party Cookie是服務(wù)器在Set-Cookie時指定了Expire時間,只有到了Expire時間后Cookie才會失效,所以這種Cookie會保存在本地;而Session-Cookie則沒有指定Expire時間,所以瀏覽器關(guān)閉后,Session Cookie就失效了。

     瀏覽器網(wǎng)站的過程中,若是一個網(wǎng)站設(shè)置了Session Cookie,那么在瀏覽器進程中的生命周期內(nèi),即使瀏覽器新打開了Tab頁,Session Cookie也都是有效的。Session Cookie保存在瀏覽器進程的內(nèi)存空間中,而Third-party Cookie則保存在本地。

     如果瀏覽器從一個域的頁面中,要加載另一個域的資源,由于安全原因,某些瀏覽器會阻止Third-party Cookie的發(fā)送。

     下面這個例子,演示了這一個過程:

      在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);

?>

      訪問這個頁面,發(fā)現(xiàn)瀏覽器同時接收(Direction:Recived 第一次接收)了這兩個Cookie。

      這時再打開一個新的瀏覽器Tab頁,訪問同一個域中的不同頁面。因為新Tab頁在同一個瀏覽器進程中,因此Session Cookie將被發(fā)送(Direction:Sent 第二次發(fā)送到服務(wù)器端)。

      此時在另外一個域中,有一個頁面http://www.b.com/csrf-test.html,此頁面構(gòu)造了CSRF以訪問www.a.com。

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

      這時卻發(fā)現(xiàn),只能發(fā)送Session Cookie(Cookie:123),而Third-party Cookie被禁止了。

      這是因為IE因為安全考慮,禁止了瀏覽器在<img>、<iframe>、<script>、<link>等標簽中發(fā)送第三方Cookie。但是firefox是允許發(fā)送第三方Cookie的。

      在當前的主流瀏覽器中,默認會攔截Third-party Cookie的有:IE、Safari;不會攔截的有:Firefox、Opera、Chrome、Android等。

2、P3P頭的副作用

      P3P Header是W3C制定的一項隱私的標準,全稱是The Platform for Privacy Preferences。

      如果網(wǎng)站返回給瀏覽器的HTTP頭里包含P3P頭,則在某種程度上說,將允許瀏覽器發(fā)送第三方Cookie,即使是在IE瀏覽器中。

3、CSRF的防御

3.1 驗證碼

     驗證碼被認為是對抗CSRF***最簡潔有效的防御方法,它強制用戶必須與應(yīng)用交互,才能完成最終請求,但是驗證碼也非萬能的,出于用戶體驗考慮,不可能所有請求都需要用戶輸入驗證碼。

3.2 Referer Check

      Referer最常見的應(yīng)用就是防止圖片盜鏈,同理,Referer Check也可以被用于檢查請求是否來自合法的"源"

     Referer Check的缺陷在于,服務(wù)器并非什么時候都能取到Referer。很多隱私條件下,限制了Referer的發(fā)送。

3.3 Anti CSRF Token

   現(xiàn)在業(yè)界一直的防御方式是使用Token。

     CSRF為什么能***成功,起本質(zhì)原因是重要的所有參數(shù)都是可以被***猜測到的。***者只有預(yù)測出URL的所有參數(shù)和參數(shù)值,才能成功的構(gòu)造一個偽站的請求;反之,***者無法***成功。

二、點擊劫持(ClickJacking)     

    點擊劫持是一種視覺上的欺騙手段。***者使用一個透明的、不可見的iframe,覆蓋在一個網(wǎng)頁上,然后又是用戶在該網(wǎng)頁上操作。

    常見的形式有:Flash點擊劫持、圖片覆蓋***、拖拽劫持與數(shù)據(jù)竊取、觸屏劫持

    防御方式:

    1、frame bustiong

     通??梢詫懸欢蜫avaScript代碼,以禁止iframe嵌套。這種方法叫frame bustiing。

    2、X-Frame-Options

    X-Frame-Option可以說是為了解決ClickJacking而生的,它有三個可選值:

        DENY:瀏覽器會拒絕當前頁面加載任何frame頁面;

        SAMEORIGIN:frame頁面的地址只能為同源域名下的頁面;

        ALLOW-FROM origin:定義允許加載的頁面地址。

    除了X-Frame-Options之外,F(xiàn)irefox的"Content Security Policy"以及Firefox的NoScript擴展也能夠防御ClickJacking。

網(wǎng)頁名稱:WEB安全之CSRF&ClickJacking
網(wǎng)頁網(wǎng)址:http://muchs.cn/article32/jpiepc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站網(wǎng)站制作、微信公眾號、網(wǎng)站收錄面包屑導(dǎo)航、網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)