在asp.net中,我實現了一個IHttpModule來緩解CSRF攻擊。它向GET響應html注入一個帶有asp.net SessionID的隱藏表單參數。然後在POST上檢查以確保隱藏參數的值與當前SessionID匹配。據我所知,獲取SessionID值的唯一方法是從cookie中獲取,該cookie無法被惡意站點讀取或確定。有什麼我可以忽略的嗎?CSRF驗證令牌:會話ID安全嗎?
7
A
回答
8
這種方法是正確的。您需要確保通過GET操作提供的所有操作都是「安全的」(無論如何,這是最佳實踐),因爲您只將XSRF保護應用於POST。
對於額外的保險,您也可以在GET上使用它(通過爲所有鏈接添加URL參數,並在每個GET請求中檢查它),但這很麻煩。
如果您是偏執偏執的人,您可以爲替代ID選擇一個不同的隨機數。即使瀏覽器錯誤地將您的會話cookie訪問到其他網站上的某些敵對Javascript,也可以保護您。創建會話時,選擇另一個大的隨機數並將其存儲在會話中。
6
理想情況下,你會想使用會話id以外的東西,但基本上就是這樣。 OWASP建議使用存儲在用戶會話中的隨機表單元素名稱。這樣攻擊者甚至不能僞造正確的隱藏域。
+0
隨機化表單元素名稱是一個有趣的想法。感謝您的鏈接。 – ironsam 2009-02-06 18:42:21
相關問題
- 1. 暴露會話的CSRF保護令牌安全嗎?
- 2. 會話令牌安全parse.com
- 3. CSRF令牌春季安全
- 4. csrf令牌,安全問題?
- 5. 會話ID驗證 - 安全 - 離子/角
- 6. 無法驗證CSRF令牌! Angular 2和彈簧安全
- 7. 登錄,用戶身份驗證,會話和csrf令牌
- 8. Laravel SPA應該使用CSRF令牌來保證安全嗎?
- 9. AngularJS安全令牌與會話
- 10. Spring安全OAuth2 - 驗證訪問令牌
- 11. 身份驗證令牌安全
- 12. 令牌身份驗證Rest API會話
- 13. 無CSRF令牌的身份驗證
- 14. Spring安全會話ID作爲令牌配置
- 15. Firebase驗證ID令牌
- 16. CSRF安全風險,如果驗證令牌在標題而不是POST正文
- 17. 在會話過期後無法驗證CSRF令牌的真實性 - Rails + devise + redis
- 18. 長身份驗證會話和安全
- 19. 需要CSRF令牌嗎?
- 20. 驗證令牌的簽名全局ID - 安全還是易受攻擊?
- 21. 如何驗證Google ID令牌?
- 22. 笨,CSRF令牌
- 23. ServerSide會話安全嗎?
- 24. user_Id會話安全嗎? Hartl
- 25. wcf聯合安全令牌是會話令牌還是可重用的?
- 26. 身份服務器4沒有安全令牌驗證器可用於令牌
- 27. 使用會話ID而不是令牌身份驗證與Dropbox http api集成
- 28. 正在使用會話var作爲安全令牌在PHP好嗎?
- 29. 顯示OAuth訪問令牌安全嗎?
- 30. Salesforce安全令牌
我現在可能不會擔心GET,因爲http無法改變狀態(但顯然可能)。只要我們保持這個慣例/標準,我們應該沒問題。我可能會考慮使用SessionID以外的值來提供額外的安全性,謝謝。 – ironsam 2009-02-06 18:46:31