我使用zend 1框架,我有多次使用ajax的表單,我用csrf保證它,但在第一次請求csrf標記將過期後,我需要新的一個。從服務器端傳遞新的csrf標記並將其用於新的ajax調用的前端是否安全?從ajax響應中獲取新的csrf哈希令牌是否安全?
回答
滾動的CSRF令牌總是一個糟糕的設計,因爲如果用戶打開了多個窗口,就會出現CSRF令牌當前有效的爭用條件。
實施任何安全系統時,請嘗試使用現有的庫或有據可查的技術。不要從臀部拍攝,請閱讀CSRF prevention Cheat sheet。
旋轉的CSRF令牌不會提高安全性,因爲相同的旁路技術總是會獲得當前的CSRF令牌。所有CSRF緩解都依賴於Same-Origin Policy - 如果您的應用程序具有SOP旁路功能(例如弱crossdomain.xml文件或不安全CORS規則集或XSS),則攻擊者可以使用此漏洞讀取任何HTTP響應。對於任何給定的Web應用程序,某些HTTP響應必須具有CSRF標記,並且可以使用SOP旁路來讀取此標記並僞造瀏覽器和Web應用程序之間的交互。
使用何種類型的CSRF緩解無關緊要 - 總是可以使用XSS來強制瀏覽器執行用戶可以執行的任何操作。如果一個對反射式XSS易受攻擊的請求也需要一個CSRF令牌,那麼它將很難或不可能被利用。爲此,CSRF & XSS有一種岩石剪刀關係。
如果您遇到防僞標記行爲方面的問題,您是否考慮過使用SameSite Cookie標誌?
長話短說。當您發送一個跨域請求時(例如,站點A向站點B發送請求),您的瀏覽器將足夠友好以檢查您是否擁有該站點的Cookie,因此,您可能容易受到XSRF攻擊。我們使用防僞令牌在發送請求的有效實體和服務器之間創建共享密鑰。但正如你所看到的,執行過程中可能會有一些問題。
另一方面,同一站點Cookie標誌允許您配置Cookie如何通過跨源請求發送。有兩種模式,嚴格模式和寬鬆模式。
在嚴格模式下,您的cookies永遠不會通過跨源請求發送。這似乎是一個很好的方法,但你也需要考慮到cookie不會通過GET請求發送,所以如果有人被重定向到你的站點,他將需要再次登錄,因爲cookie沒有被髮送請求。
寬鬆模式幾乎相同,但它允許您的cookie通過安全的HTTP動詞(GET,HEAD,OPTIONS和TRACE)發送,因此您可以防止POST/PUT CSRF攻擊,但是您用戶通過GET請求瀏覽仍然會有很好的行爲。
編輯:只要添加即使SameSite cookie標誌聽起來像是一個非常好的選項,它只能由Chrome和Opera實現,所以如果您的用戶羣是使用各種不同瀏覽器和不同瀏覽器的人版本,它可能不是您的應用程序的最佳選擇。
- 1. 將REST服務的CSRF令牌包含爲Http響應頭是否安全?
- 2. csrf令牌,安全問題?
- 3. CSRF令牌春季安全
- 4. 通過AJAX獲取CSRF令牌
- 5. IsInRole獲取新的安全令牌
- 6. 如何從表單提交的ajax響應獲取哈希url?
- 7. 在每個作爲響應傳遞的請求上更新CSRF令牌是安全的嗎? (AJAX)
- 8. 響應路由器中的csrf令牌
- 9. Ajax是否要求CSRF安全?
- 10. 是否通過API(未嵌入HTML)檢索CSRF令牌安全/安全?
- 11. 在Listner中獲取CSRF令牌symfony
- 12. 如何在iOS中獲取CSRF令牌?
- 13. 我是否需要WinForms的CSRF令牌?
- 14. 從哈希中獲取值
- 15. 這是設置令牌CSRF的安全方式嗎?
- 16. Rest API - 在JSON響應中獲取密碼是否安全
- 17. 提取CSRF令牌的Django應用
- 18. Laravel SPA應該使用CSRF令牌來保證安全嗎?
- 19. Rails CSRF令牌 - 它們是否過期?
- 20. 測試時手動獲取CSRF令牌
- 21. Spring安全中每個請求的不同csrf令牌
- 22. Rails - 從HTTP請求獲取哈希響應(可讀性url)
- 23. 獲取從URL中使用安全令牌
- 24. 從Ruby中的Facebook Open Graph響應獲取訪問令牌
- 25. 它在安全性方面是否會影響哈希和加密的順序?
- 26. Spring Security獲得CSRF令牌
- 27. 如何在AJAX中使用Zend Framework窗體哈希(令牌)
- 28. 在C#中,是否可以從文件名安全的字節數組中獲取哈希值?
- 29. 使用ajax響應和哈希問題使用ajax響應和哈希問題使用jQuery的jQuery類型json
- 30. ajax請求上的CSRF令牌
-1 SameSite是一個RFC草案,它並不是所有瀏覽器都支持的,並且一年四季都沒有準備好生產。我將在常用的5年中刪除-1。 – rook
@rook要給你這一點,我忘記澄清,至少現在,SameSite cookie標誌只被Chrome和Opera實現。 –