跨站請求偽造(Cross-Site Request Forgery:CSRF)
跨站請求偽造(CSRF)是一個很好的選擇。傳統的CSRF攻擊會發生以下先決條件:
- 受害用戶已登錄到系統(例如,在線銀行)。
- 受害用戶單擊帶有偽造或操縱參數的惡意超鏈接。
- 受害系統接受作為HTTP GET請求發送的URL。
以下是緩解CSRF攻擊的技巧: - 系統不應接受通過GET進行的交易請求。而是應通過POST,PUT或DELETE完成事務。RESTful API通過以下方式使用HTTP動詞/方法:GET用於查詢,POST用於插入,PUT用於修改,DELETE用於刪除。
- CSRF攻擊也可以通過iframe內的HTTP形式觸發。因此,應執行同源政策。現代Web瀏覽器默認情況下啟用同源策略。
- 攻擊者可以從攻擊工具發送CSRF攻擊。減輕這種風險的最終方法是以每種HTTP形式實現存儲在隱藏輸入中的身份驗證代碼。Microsoft ASP.NET MVC很好地支持此功能。
重播(Replay)
重播可能由中間人,惡意用戶或無意行為觸發。重播消息可能會或可能不會被操縱。該問題並不建議緩解重放攻擊。
參考
. 跨站點腳本(XSS)
. 跨站請求偽造(CSRF)
. 防止ASP.NET MVC應用程序中的跨站點請求偽造(CSRF)攻擊
. 財務導向的Web應用程序中的常見安全問題
. 同源政策
. 同源策略:現代瀏覽器中的評估
. 現代瀏覽器中的原始策略執行
. 同源政策的權威指南
. 靜默提交POST表單(CSRF)的示例
資料來源: Wentz Wu QOTD-20200520
PS:此文章經過作者同意刊登 並且授權可以翻譯成中文