[英]Handling Angular 2 csrf for cross origins
下面是我們應用程序的架構。
申請流程如下:
除了第 5 步之外,在身份驗證服務器、代理和客戶端上一切都按預期工作:
Angular 應該能夠根據文檔自動處理這個問題
{ provide: XSRFStrategy, useValue: new CookieXSRFStrategy('XSRF-TOKEN', 'X-CSRF-TOKEN')}
其中 angular 將能夠獲取[XSRF-TOKEN] cookie 的值並創建[X-CSRF-TOKEN]標頭以及我們通過應用程序發出的每個請求。
雖然 & 當我使用不同的來源構建架構時,angular 無法從另一個來源讀取 cookie。
我面臨的這種方法的問題是,由於服務器在不同的域中,我無法通過 XSRFStrategy 提供程序讀取 cookie。 有沒有辦法讀取那個 cookie 的值?
如果不是,那么當前的架構是錯誤的,我需要在同一個域中構建[client]和[proxy] ,我避免了這種方法,因為我需要將表示層與任何后端代碼分開。
所以,我的問題是如何針對這種情況實施 csrf 保護?
在您的端口中,您提到了“訪問+刷新令牌”,這聽起來像是您在使用 OAuth。 在跨域場景中,CSRF 通常根本不是問題。 如果您的客戶端需要發送任何類型的 HTTP Header 進行身份驗證,您可以安全地禁用 CSRF。
CSRF 攻擊會使您的瀏覽器發送為 [API] 域存儲的 cookie,並且通過一些黑客攻擊,攻擊者還可能發送“X-Requested-With: XMLHttpRequest”。 但是,如果您的 API 還需要“授權:不記名...”令牌,您可以放棄整個 CSRF 的麻煩。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.