歡迎光臨
每天分享高質量文章

CSRF(跨站請求偽造)簡介 | Linux 中國

設計 Web 程式時,安全性是一個主要問題。我不是在談論 DDoS 保護、使用強密碼或兩步驗證。我說的是對網絡程式的最大威脅。它被稱為CSRF, 是 Cross Site Resource Forgery (跨站請求偽造)的縮寫。
— Linuxandubuntu


致謝
編譯自 | 
http://www.linuxandubuntu.com/home/understanding-csrf-cross-site-request-forgery
 
 作者 | Linuxandubuntu
 譯者 | geekpi 共計翻譯:779 篇 貢獻時間:1753 天

設計 Web 程式時,安全性是一個主要問題。我不是在談論 DDoS 保護、使用強密碼或兩步驗證。我說的是對網絡程式的最大威脅。它被稱為 CSRF, 是 Cross Site Resource Forgery (跨站請求偽造)的縮寫。

什麼是 CSRF?

csrf what is cross site forgery

首先,CSRF 是 Cross Site Resource Forgery 的縮寫。它通常發音為 “sea-surf”,也經常被稱為 XSRF。CSRF 是一種攻擊型別,在受害者不知情的情況下,在受害者登錄的 Web 程式上執行各種操作。這些行為可以是任何事情,從簡單地點贊或評論社交媒體帖子到向人們發送垃圾訊息,甚至從受害者的銀行賬戶轉移資金。

CSRF 如何工作?

CSRF 攻擊嘗試利用所有瀏覽器上的一個簡單的常見漏洞。每次我們對網站進行身份驗證或登錄時,會話 cookie 都會儲存在瀏覽器中。因此,每當我們向網站提出請求時,這些 cookie 就會自動發送到服務器,服務器通過匹配與服務器記錄一起發送的 cookie 來識別我們。這樣就知道是我們了。

cookies set by website chrome

這意味著我將在知情或不知情的情況下發出請求。由於 cookie 也被髮送並且它們將匹配服務器上的記錄,服務器認為我在發出該請求。  CSRF 攻擊通常以鏈接的形式出現。我們可以在其他網站上點擊它們或通過電子郵件接收它們。單擊這些鏈接時,會向服務器發出不需要的請求。正如我之前所說,服務器認為我們發出了請求並對其進行了身份驗證。

一個真實世界的例子

為了把事情看得更深入,想象一下你已登錄銀行的網站。併在 yourbank.com/transfer 上填寫表格。你將接收者的帳號填寫為 1234,填入金額 5,000 並單擊提交按鈕。現在,我們將有一個 yourbank.com/transfer/send?to=1234&amount;=5000 的請求。因此服務器將根據請求進行操作並轉賬。現在想象一下你在另一個網站上,然後點擊一個鏈接,用黑客的帳號作為引數打開上面的 URL。這筆錢現在會轉賬給黑客,服務器認為你做了交易。即使你沒有。

csrf hacking bank account

CSRF 防護

CSRF 防護非常容易實現。它通常將一個稱為 CSRF 令牌的令牌發送到網頁。每次發出新請求時,都會發送並驗證此令牌。因此,向服務器發出的惡意請求將通過 cookie 身份驗證,但 CSRF 驗證會失敗。大多數 Web 框架為防止 CSRF 攻擊提供了開箱即用的支持,而 CSRF 攻擊現在並不像以前那樣常見。

總結

CSRF 攻擊在 10 年前是一件大事,但如今我們看不到太多。過去,Youtube、紐約時報和 Netflix 等知名網站都容易受到 CSRF 的攻擊。然而,CSRF 攻擊的普遍性和發生率最近有減少。儘管如此,CSRF 攻擊仍然是一種威脅,重要的是,你要保護自己的網站或程式免受攻擊。


via: http://www.linuxandubuntu.com/home/understanding-csrf-cross-site-request-forgery

作者:linuxandubuntu[2] 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

赞(0)

分享創造快樂