如果我不在表單中使用csrf標記,我所面臨的風險到底是什麼?我不尋找簡單的標籤或風險名稱,因爲這些可能會讓人困惑。我需要明白攻擊者究竟能做什麼,只有在什麼情況下他們才能用簡單的英語來做到這一點。沒有CSRF標記的表單:有什麼風險
回答
CSRF漏洞是指允許惡意用戶(或網站)讓不知情的用戶在您的網站上執行他們不想發生的操作。
一些真實世界的例子是,如果您允許用戶通過GET而不是POST來刪除帳戶,某人可以在您的網站上發佈以下評論(假設該網站有一些發佈評論或其他輸入的方式,等等)
我想我會在您的網站發表評論。看看這個很酷的圖像!
< IMG SRC =「HTTP://example.com/delete_my_account.php」/>
而現在用戶加載該頁面登錄任何時候,他們的帳戶將被刪除。如果有人做了。如果你使用CSRF令牌,這是不可能的。
另一個例子是,一個外部站點可以製作一個張貼到你網站的表單,並執行一個不需要的操作,假設你的網站有一個不使用CSRF令牌的購物車,惡意網站可以創建一個帶有bu tton表示「點擊此處註冊」,但實際上從您的網站訂購了1000件東西。如果您網站的登錄用戶訪問這個惡意網站並點擊該按鈕,他們會在郵件中獲得驚喜。
顯然還有其他的情況,這些只是一些例子。谷歌搜索應該會顯示大量的文章和教程,其中許多可能會有其他一些例子。 Wikipedia page也有一些你可能會感興趣的例子。
這些示例的主要思想是,某人可以欺騙您的網站執行操作,就好像它來自用戶一樣,但實際上用戶不知道它正在發生或不希望發生。如果您的網站有任何破壞性行爲(即可以從用戶帳戶中刪除內容,註銷用戶等)或關鍵性行爲(即處理金錢),則應該使用CSRF令牌。如果您的網站只是朋友等相冊,那麼您可能不需要打擾CSRF令牌(儘管在您構建需要它們的網站時練習總是很好的)。
除非您添加令牌以確保請求來自表單,而您的網站故意提供給用戶,否則您確實無法知道用戶是否打算執行此操作。
因此,您總是希望在您生成的每個表單上使用唯一標記,並驗證發送到您網站的所有請求都有當前用戶的有效標記。還要確保在一段時間後過期令牌,以便它們不會永遠持續下去。
- 1. 保護表單使用ajax提交:有或沒有csrf標記
- 2. 風險分析與風險緩解有什麼區別?
- 3. 獲取沒有表單的Codeigniter CSRF標記?
- 4. 我的HTML表單有風險嗎?
- 5. 我是否有POST風險的CSRF攻擊風險,不需要用戶登錄?
- 6. 你有什麼風險管理策略?
- 7. UnsafeMutablePointer <UInt8>:有什麼風險?
- 8. 多次SubmitChanges有什麼風險?
- 9. 使用xpath有什麼安全風險?
- 10. 使用Macports有什麼風險?
- 11. CSRF風險和令牌
- 12. 爲什麼跨域AJAX請求被標記爲「安全風險」?
- 13. 初始化變量 - 爲什麼以及有什麼風險?
- 14. Symfony 2當使用沒有類的表單時添加CSRF標記
- 15. Codeigniter csrf保護沒有表單驗證
- 16. 有沒有什麼辦法在SQLite中標記一個表?
- 17. 暴露不那麼祕密的oauth密鑰有什麼風險?有沒有解決方法?
- 18. 使用提取的PHP超全球植物有什麼風險?
- 19. 傳遞ContentResolver有風險嗎?
- 20. 連續投票有沒有真正的風險?
- 21. 有沒有從哈德森遷移到詹金斯的風險?
- 22. 什麼阻止某人閱讀JSF的表單輸入中的CSRF標記
- 23. Emacs中的「風險」是什麼?
- 24. 什麼是禁用ngSanitize的風險?
- 25. 爲什麼沒有記錄?
- 26. 在centos上使用apt-get有什麼風險?
- 27. 即時創建存儲過程。有什麼風險/問題?
- 28. 在Android平臺上使用棄用方法有什麼風險?
- 29. 讓用戶上傳和運行Javascript有什麼風險
- 30. 運行Erlang集羣時有什麼安全風險?
聽起來像有人試圖瞭解更多關於應用程序安全性的內容。 – park 2011-01-19 22:29:38