CSRF是什么?

跨站請求偽造(csrf)是一種劫持受信任用戶向服務(wù)器發(fā)送非預(yù)期請求的攻擊方式。例如,這些非預(yù)期請求可能在url后加入一些惡意的參數(shù),從而達到攻擊者的目的。

理解

 其他人通過csrf攻擊盜用你的網(wǎng)站用戶身份。
 你這個網(wǎng)站用戶所擁有的權(quán)限那他就都可以使用,比如用你的身份發(fā)消息、購買物品、轉(zhuǎn)賬等等。

原理

  A:用戶的信任網(wǎng)站 B:危險網(wǎng)站
 .成功登錄A網(wǎng)站  這里瀏覽器會產(chǎn)生cookie
 .打開B網(wǎng)站
 .B網(wǎng)站事先摸清了A網(wǎng)站的請求套路,比如轉(zhuǎn)賬的請求是:/zhuangzhang
 .此時打開B網(wǎng)站會有請求到A網(wǎng)站,并且攜帶了A網(wǎng)站的cookie
 .A的服務(wù)器會認為這是一個正常的處理,這樣B就達到了模擬用戶操作的目的

常見攻擊類型

  • GET類型的csrf

    某網(wǎng)站可以上傳圖片,然后小明上傳了圖片如下

    <img src=http://jirengu.com/csrf?xx=11 />

    當(dāng)用戶訪問到有此圖片的頁面時就完成了一次csrf攻擊

  • POST類型的csrf

    用戶在登錄他所信任的的網(wǎng)站之后又訪問了危險網(wǎng)站

    危險網(wǎng)站內(nèi)有這樣一段代碼

    <form action=http://jirengu.com/csrf.php method=POST>
        <input type="text" name="xx" value="11" />
    </form>
    <script> document.forms[0].submit(); </script>
    

    訪問此頁面后 表單就會提交 此時就完成了一次post的csrf攻擊

防御

  • 驗證 HTTP Referer 字段

    http協(xié)議中,http頭有一個字段叫 referer ,他記錄了該請求的來源。

    請求驗證的時候,判斷請求來源是否合法,不合法就拒絕并送他一句MMP..

    但是referer是可以篡改的,就斷有些瀏覽器無法篡改對于某些注重隱私的組織來說這種方法也不實用。

  • 添加token

    csrf的原理就是偽造用戶的請求,那可以制造一種不能偽造或者很難偽造的請求。

    我們可以再http請求中加一個隨機產(chǎn)生的token,在服務(wù)器驗證token

    如果token不合法那就送他一句MMP吧

    但是這種方法也有很大缺點,比如每個請求都需要攜帶token增加了開發(fā)成本

    而且,通過referer也可以得到token值

csrf的危害很大,但?? 又難于防范,并沒有很完美的解決方案,只有重視才能降低傷害。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • http://www.91ri.org/tag/fuzz-bug 通常情況下,有三種方法被廣泛用來防御CSRF攻擊...
    jdyzm閱讀 4,401評論 0 5
  • 跨站請求偽造(英語:Cross-site request forgery),也被稱為 one-click atta...
    莊海鑫閱讀 11,717評論 4 22
  • CSRF概念:CSRF跨站點請求偽造(Cross—Site Request Forgery),跟XSS攻擊一樣,存...
    raincoco閱讀 876評論 0 1
  • 轉(zhuǎn)載地址:http://www.phpddt.com/reprint/csrf.htmlCSRF概念:CSRF跨站...
    matianhe閱讀 1,034評論 0 104
  • CSRF是什么? (Cross Site Request Forgery, 跨站域請求偽造)是一種網(wǎng)絡(luò)的攻擊方式,...
    謝澤閱讀 3,281評論 0 8

友情鏈接更多精彩內(nèi)容