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

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)

分享創造快樂