[英]CSRF protection in a angular SPA using Double Submit cookie
我們正在努力嘗試使用 AngularJS 和 Restful 服務在 SPA 中實現 CSRF 保護。
場景: 1. 用戶登錄 JWT 創建包含 CSRF 令牌作為有效負載的一部分。
JWT 被放入 HTTP Only Secure cookie 並在響應頭上發回
此外,在響應中發回相同的 CSRF 令牌。
javascript (angular) 代碼將 CSRF 令牌放在 $rootScope 中
用戶/程序無論如何......請求受保護的api。 從請求中的 $rootScope 發送 CSRF 令牌。
Cookie 與請求一起返回。
服務器查看 cookie 解包 JWT 中的 csrf 令牌,將 CSRF 令牌與請求正文中的令牌進行比較。
問題:如果我在短時間內(亞秒級)收到來自客戶端(可能使用攔截器)的許多請求,該客戶端從 $rootScope 獲取 CSRF 令牌。 我的請求中的 csrf 令牌是否可能與 Header/Cookie/JWT 中的 CSRF 令牌不同步?
PS我理解承諾等的概念。
最重要的是,我希望對 API 的每個請求在正文中都有一個 CSRF 令牌,該令牌將與 Header/Cookie/JWT 中的 CSRF 令牌相匹配。
是的,它可以,並且根據我過去的經驗,它有時會發生,導致難以捕獲錯誤。
您可以通過使用多個令牌並接受每個令牌等來解決這個問題,以克服時間問題,但這將非常復雜,並且復雜性是安全性的敵人。
但是,您可以只為用戶會話使用相同的 CSRF 令牌。 如果令牌中有足夠的熵(即它足夠長),攻擊者仍然無法成功猜測它,因此您不必為每個請求生成一個新的。 這解決了所有相關問題,同時非常簡單且相當安全。 OWASP 還聲明(在中間的某個地方)這已經足夠好了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.