Linux中國

CSRF(跨站請求偽造)簡介

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

什麼是 CSRF

csrf what is cross site forgery

首先,CSRF 是 Cross Site Request 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 選題:lujun9972 譯者:geekpi 校對:wxy

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


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國