真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

學(xué)習(xí)筆記之CSRF初級(jí)篇-創(chuàng)新互聯(lián)

什么是CSRF

創(chuàng)新互聯(lián)公司從2013年成立,先為平輿等服務(wù)建站,平輿等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為平輿企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

CSRF(Cross-siterequestforgery跨站請(qǐng)求偽造,也被稱為“oneclickattack”或者sessionriding,通??s寫為CSRF或者XSRF,是一種對(duì)網(wǎng)站的惡意利用。盡管聽起來像跨站腳本(XSS),但它與XSS非常不同,并且***方式幾乎相左。XSS利用站點(diǎn)內(nèi)的信任用戶,而CSRF則通過偽裝來自受信任用戶的請(qǐng)求來利用受信任的網(wǎng)站。與XSS***相比,CSRF***往往不大流行(因此對(duì)其進(jìn)行防范的資源也相當(dāng)稀少)和難以防范,所以被認(rèn)為比XSS更具危險(xiǎn)性。

Xss與CSRF異同

CSRF與XSS在***手段上有點(diǎn)類似,都是在客戶端執(zhí)行惡意代碼,有些文章中認(rèn)為CSRF與XSS的區(qū)別在于CSRF不注重于獲取用戶Cookie,筆者認(rèn)為可能還有區(qū)別在于CSRF不僅可以在源站發(fā)起***,還可以引導(dǎo)用戶訪問其他危險(xiǎn)網(wǎng)站的同時(shí)發(fā)起***。

XSS全程是跨站腳本***,即***者向某個(gè)Web頁面中插入惡意的JavaScript腳本。而當(dāng)普通用戶訪問時(shí),該惡意腳本自動(dòng)執(zhí)行而從盜取用戶的Cookie等信息。對(duì)于XSS的防御手段主要就是輸入檢查與輸出檢查,譬如對(duì)用戶輸入的文本框內(nèi)容進(jìn)行<、>這樣的特殊字符檢查。而輸出檢查則是指對(duì)于輸出到網(wǎng)頁的內(nèi)容進(jìn)行過濾或者編解碼,譬如使用HTML編碼將<轉(zhuǎn)義。

CSRF為跨站請(qǐng)求偽造,其與XSS有點(diǎn)類似,不過區(qū)別在于CSRF不一定依賴于JavaScript,并且不僅可以在源站發(fā)起***,還有可能當(dāng)用戶訪問惡意網(wǎng)站時(shí)引導(dǎo)其訪問原網(wǎng)站。CSRF***是源于WEB的隱式身份驗(yàn)證機(jī)制,WEB的身份驗(yàn)證機(jī)制雖然可以保證一個(gè)請(qǐng)求是來自于某個(gè)用戶的瀏覽器,但卻無法保證該請(qǐng)求是用戶批準(zhǔn)發(fā)送的。對(duì)于CSRF的防御也分為服務(wù)端防御與客戶端防御兩種,服務(wù)端防御典型的譬如給某個(gè)頁面添加隨機(jī)數(shù),使得無法從第三方頁面直接提交。在客戶端防御的話可以利用譬如Firefox提供的一些檢查工具。注意,CSRF并沒有打破同源策略。

CSRF的危害

你這可以這么理解CSRF***:***者盜用了你的身份,以你的名義發(fā)送惡意請(qǐng)求。CSRF能夠做的事情包括:以你名義發(fā)送郵件,發(fā)消息,盜取你的賬號(hào),甚至于購買商品,

虛擬貨幣轉(zhuǎn)賬等等造成的問題包括:個(gè)人隱私泄露以及財(cái)產(chǎn)安全。

下圖簡(jiǎn)單闡述了CSRF***的思想:

學(xué)習(xí)筆記之CSRF初級(jí)篇

從上圖可以看出,要完成一次CSRF***,受害者必須依次完成兩個(gè)步驟:

1.登錄受信任網(wǎng)站A,并在本地生成Cookie。

2.在不登出A的情況下,訪問危險(xiǎn)網(wǎng)站B。

看到這里,你也許會(huì)說:“如果我不滿足以上兩個(gè)條件中的一個(gè),我就不會(huì)受到CSRF的***”。是的,確實(shí)如此,但你不能保證以下情況不會(huì)發(fā)生:

1.你不能保證你登錄了一個(gè)網(wǎng)站后,不再打開一個(gè)tab頁面并訪問另外的網(wǎng)站。

2.你不能保證你關(guān)閉瀏覽器了后,你本地的Cookie立刻過期,你上次的會(huì)話已經(jīng)結(jié)束。(事實(shí)上,關(guān)閉瀏覽器不能結(jié)束一個(gè)會(huì)話,但大多數(shù)人都會(huì)錯(cuò)誤的認(rèn)為關(guān)閉瀏覽器就等于退出登錄/結(jié)束會(huì)話了......)

3.上圖中所謂的***網(wǎng)站,可能是一個(gè)存在其他漏洞的可信任的經(jīng)常被人訪問的網(wǎng)站。同樣也可以是一個(gè)惡意的url。

SCRF觸發(fā)條件

1、被***者的用戶cookies

2、惡意的url或表單

CSRF的防御

CSRF的防御可以從服務(wù)端和客戶端兩方面著手,防御效果是從服務(wù)端著手效果比較好,現(xiàn)在一般的CSRF防御也都在服務(wù)端進(jìn)行。

1.服務(wù)端進(jìn)行CSRF防御

服務(wù)端的CSRF方式方法很多樣,但總的思想都是一致的,就是在客戶端頁面增加偽隨機(jī)數(shù)。

(1).Cookie Hashing(所有表單都包含同一個(gè)偽隨機(jī)值):

這可能是最簡(jiǎn)單的解決方案了,因?yàn)?**者不能獲得第三方的Cookie(理論上),所以表單中的數(shù)據(jù)也就構(gòu)造失敗了

    //構(gòu)造加密的Cookie信息
    $value = “DefenseSCRF”;
    setcookie(”cookie”, $value,time()+3600);
  ?>
  

  在表單里增加Hash值,以認(rèn)證這確實(shí)是用戶發(fā)送的請(qǐng)求。

      $hash = md5($_COOKIE['cookie']);
  ?>
  


    
    
    ”>
    

然后在服務(wù)器端進(jìn)行Hash值驗(yàn)證

         if(isset($_POST['check'])) {
             $hash =md5($_COOKIE['cookie']);
            if($_POST['check'] == $hash) {
                 doJob();
            } else {
        //...
            }
       } else {
      //...
       }
     ?>

這個(gè)方法目前覺得已經(jīng)可以杜絕大多數(shù)***了,那還有少數(shù)由于用戶的Cookie很容易由于網(wǎng)站的XSS漏洞而被盜取,一般的***者看到有需要算Hash值,基本都會(huì)放棄了,當(dāng)然也有些人除外,所以如果需要100%的杜絕,這并不是最好的方法。

(2).驗(yàn)證碼

這個(gè)方案的思路是:每次的用戶提交都需要用戶在表單中填寫一個(gè)圖片上的隨機(jī)字符串,厄....這個(gè)方案可以完全解決CSRF,但個(gè)人覺得在易用性方面似乎不是太好,還有聽聞是驗(yàn)證碼圖片的使用涉及了一個(gè)被稱為MHTML的Bug,可能在某些版本的微軟IE中受影響。

(3).One-Time Tokens(不同的表單包含一個(gè)不同的偽隨機(jī)值)

在實(shí)現(xiàn)One-Time Tokens時(shí),需要注意一點(diǎn):就是“并行會(huì)話的兼容”。如果用戶在一個(gè)站點(diǎn)上同時(shí)打開了兩個(gè)不同的表單,CSRF保護(hù)措施不應(yīng)該影響到他對(duì)任何表單的提交。考慮一下如果每次表單被裝入時(shí)站點(diǎn)生成一個(gè)偽隨機(jī)值來覆蓋以前的偽隨機(jī)值將會(huì)發(fā)生什么情況:用戶只能成功地提交他最后打開的表單,因?yàn)樗衅渌谋韱味己蟹欠ǖ膫坞S機(jī)值。必須小心操作以確保CSRF保護(hù)措施不會(huì)影響選項(xiàng)卡式的瀏覽或者利用多個(gè)瀏覽器窗口瀏覽一個(gè)站點(diǎn)。

以下我的實(shí)現(xiàn):

1).先是令牌生成函數(shù)(gen_token()):

     function gen_token() {
              $token = md5(uniqid(rand(), true));
         return $token;
    }

2).然后是Session令牌生成函數(shù)(gen_stoken()):

        function gen_stoken() {
      $pToken = "";
      if($_SESSION[STOKEN_NAME]  == $pToken){
        //沒有值,賦新值
        $_SESSION[STOKEN_NAME] =gen_token();
      }
      else{
        //繼續(xù)使用舊的值
      }
       }
    ?>

3).WEB表單生成隱藏輸入域的函數(shù):  

      function gen_input() {
            gen_stoken();
           echo “                value=\”". $_SESSION[STOKEN_NAME] . “\”> “;
       }
    ?>

  4).WEB表單結(jié)構(gòu):

          session_start();
         include(”functions.php”);
    ?>
    
         
         
         
         
    

5).服務(wù)端核對(duì)令牌

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


當(dāng)前名稱:學(xué)習(xí)筆記之CSRF初級(jí)篇-創(chuàng)新互聯(lián)
地址分享:http://weahome.cn/article/cdgogi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部