在利用令人驚歎的AngularJS之前,我曾經將CSRF令牌存儲在PHP中的Sessions變量中。我的CSRF驗證已準備就緒,並可在會話中使用它。但是,問題是AngularJS無法訪問PHP Session變量來獲取令牌。我應該在哪裏儲存它們?將它們存儲在cookie中是否安全?什麼是最安全的方法來解決這個問題?也許我應該生成令牌並將它們存儲在會話和cookie中,然後根據會話檢查cookie,然後在使用它時更新令牌?csrf令牌在哪裏存儲angularjs
0
A
回答
1
我更喜歡將它存儲在角度服務中,因爲可以輕鬆地訪問cookie。當發送XHR時,附加令牌併發送。
在會話中還要保留副本,您必須在服務器端進行檢查。我們不應該信任來自任何客戶端的請求,我們必須始終像攻擊者發送請求那樣進行編碼。我們應該處理它們在服務器端
編輯:
你可以閱讀有關的服務在這裏:https://docs.angularjs.org/guide/services
angular.module('app').service("Auth", function() {
return {
csrfToken: "some token"
}
})
在控制器,你可以注入這種服務和
angular.module('app').controller("someController",
function ($http, Auth) { // injecting Auth service
$http({method: 'POST', url: "http://example.com/users/1",
xsrfHeaderName: "csrfToken",
header: {csrfToken: Auth.csrfToken} }) // token taken from angular service
})
如果你想存儲cookie。你可以做到這一點
$http({method: 'POST', url: "http://example.com/users/1",
xsrfCookieName: "name of cookie in which you stored the token"})
// fill cookie name
相關問題
- 1. Remember-Me-cookie - 在哪裏存儲令牌
- 2. rails csrf令牌生存期
- 3. 我應該在哪裏存儲訪問令牌
- 4. Twitter與Oauth ASP.NET MVC,在哪裏存儲祕密令牌
- 5. Spring OAuth2.0:spring在哪裏存儲訪問令牌?
- 6. CSRF令牌丟失,Ionic - AngularJS FullStack
- 7. 笨,CSRF令牌
- 8. Symfony 3.0.1 CSRF令牌存在,但無效
- 9. 由於csrf令牌,django +清漆緩存未被存儲
- 10. Django的CSRF令牌
- 11. 變化CSRF令牌
- 12. CSRF同步令牌
- 13. CSRF令牌生成
- 14. CSRF 403禁止 - 無效的CSRF令牌
- 15. 應用程序中存儲的版本和publickey令牌信息在哪裏?
- 16. 我可以在哪裏存儲iOS設備令牌供以後使用?
- 17. 默認情況下,Android手機上存儲的Firebase FCM令牌在哪裏
- 18. .NET「獨立存儲」存儲在哪裏?
- 19. 在哪裏存儲數據?
- 20. 變量存儲在哪裏?
- 21. Git Stashes存儲在哪裏?
- 22. 這些存儲在哪裏?
- 23. BaseX Db在哪裏存儲?
- 24. Properties.Settings.Default存儲在哪裏?
- 25. OCUnit在哪裏存儲NSUserDefaults?
- 26. TempData在哪裏存儲?
- 27. memcached在哪裏存儲?
- 28. 在哪裏存儲PHP cookies?
- 29. .data()在哪裏存儲值?
- 30. nginx在哪裏存儲rewrite_log?
你可以看看下面的鏈接。 ['曲奇與令牌。使用Angular.JS'正確獲取權限](https://auth0.com/blog/2014/01/07/angularjs-authentication-with-cookies-vs-token/) – EniGma 2014-09-04 07:35:30
請參閱http://stackoverflow.com/questions/20196737/setting-php-session-on-index-page-for-xsrf-check更好的答案 – ErichBSchulz 2015-03-16 20:54:40