簡體   English   中英

瀏覽器應用程序和身份驗證令牌再次

[英]Browser applications and auth tokens again

我一直在審查我們應該如何在瀏覽器應用程序(SPA)中處理OAuth身份驗證,並且有大量的文章使這一切都變得令人困惑...我確實缺少一些具體的最佳實踐指導,安裝非常簡單。

我們擁有這個ASP.NET Web API 2,它使用IdSvr3發行的令牌進行了保護。 到現在為止還挺好。 與本機客戶端和服務器應用程序一起使用。

現在瀏覽器中的內容...查看一個示例,例如JavaScriptImplicitClient ,該示例使用oidc-client-js庫使用隱式流程檢索令牌。 令牌存儲在瀏覽器中,可以使用JavaScript進行訪問,並且可以通過XSS攻擊進行訪問。 為了避免這種情況,建議指示將令牌存儲在cookie中,然后設置一種機制來防止CSRF攻擊。

看起來很簡單,但是是什么設置了該Cookie?

  • 是IdSvr嗎? 沒道理,因為是需要Cookie的API。

  • 是API嗎? 在隱式流登錄過程中,是否將用戶重定向到設置會話的API,然后使用Set-Cookie標頭將用戶重定向回SPA? 然后,該Cookie將在后續請求中呈現給API。

  • 第三個解決方案? 有人提到創建第二個“ API”來代理對“真實” API的請求,但設置了auth標頭。

您是否有這種設置的示例,或者是否可以提供一些有關如何進行設置的提示?

就個人而言,在大多數情況下,由於XSS而避免使用Web存儲令牌的情況似乎有所加劇。 有一個重要的問題,如果您的應用程序容易受到XSS的攻擊,此漏洞的影響是否會顯着增加,因為您還泄漏了令牌,或者即使您沒有在其中存儲令牌也已經完全被偽裝了。麻煩的類型。

我對幾種將訪問令牌存儲在Web瀏覽器應用程序中的方法的利弊進行了比較,您可以在此答案中找到相關問題

最后,每種情況最終都有自己的詳細信息,這可能會在一種方法與另一種方法(cookie或Web存儲)之間取得平衡。 只是不要一開始就忽略任何選項,而是根據您的要求查看所有選項。

我敢打賭,那里有一些實現將它們存儲在僅HTTP的cookie中,以避免Web Storage出現XSS問題, 然后最終使用CSRF緩解策略來應對,該策略在XSS面前很容易受到攻擊

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM