在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. CSRF令牌驗證
- 3. 會話令牌安全parse.com
- 4. csrf令牌,安全問題?
- 5. CSRF令牌春季安全
- 6. 會話ID驗證 - 安全 - 離子/角
- 7. 如何驗證CSRF令牌?
- 8. 無法驗證CSRF令牌! Angular 2和彈簧安全
- 9. 登錄,用戶身份驗證,會話和csrf令牌
- 10. Laravel SPA應該使用CSRF令牌來保證安全嗎?
- 11. Spring安全OAuth2 - 驗證訪問令牌
- 12. 身份驗證令牌安全
- 13. AngularJS安全令牌與會話
- 14. 令牌身份驗證Rest API會話
- 15. Yii CSRF令牌無法驗證
- 16. 無CSRF令牌的身份驗證
- 17. PHP CSRF表單令牌+驗證建議
- 18. CSRF令牌會話得到重置
- 19. Spring安全會話ID作爲令牌配置
- 20. WordPress的:通過用戶ID與令牌/驗證會話
- 21. Firebase驗證ID令牌
- 22. 會話ID與令牌
- 23. 使用JWT令牌的安全令牌驗證錯誤 - HDInsight
- 24. 這是設置令牌CSRF的安全方式嗎?
- 25. CSRF安全風險,如果驗證令牌在標題而不是POST正文
- 26. CSRF令牌應該經過服務器端驗證嗎?
- 27. 未驗證CSRF令牌的真實性時,無法重置用戶會話
- 28. 在會話過期後無法驗證CSRF令牌的真實性 - Rails + devise + redis
- 29. 長身份驗證會話和安全
- 30. 使用會話ID在安全網頁上驗證用戶
我現在可能不會擔心GET,因爲http無法改變狀態(但顯然可能)。只要我們保持這個慣例/標準,我們應該沒問題。我可能會考慮使用SessionID以外的值來提供額外的安全性,謝謝。 – ironsam 2009-02-06 18:46:31