在利用令人驚歎的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. 在哪裏存儲JWT令牌?
- 3. Rails 4在哪裏存儲用於CSRF保護的身份驗證令牌?
- 4. 身份驗證令牌在客戶端存儲在哪裏?
- 5. rails csrf令牌生存期
- 6. 當用戶不想被記住時,在哪裏存儲令牌
- 7. Spring OAuth2.0:spring在哪裏存儲訪問令牌?
- 8. 在哪裏存儲API令牌,用戶/密碼等
- 9. 我應該在哪裏存儲訪問令牌
- 10. Twitter與Oauth ASP.NET MVC,在哪裏存儲祕密令牌
- 11. PhoneGap - Angularjs - 在哪裏存儲內容?
- 12. 開發環境中的AngularJS csrf令牌
- 13. CSRF令牌丟失,Ionic - AngularJS FullStack
- 14. httplib - CSRF令牌
- 15. 笨,CSRF令牌
- 16. csrf令牌dajaxice
- 17. Symfony 3.0.1 CSRF令牌存在,但無效
- 18. osx命令存儲在哪裏?
- 19. 由於csrf令牌,django +清漆緩存未被存儲
- 20. 哪一個令牌更適合存儲 - 用於CSRF預防的SESSION或Cookie?
- 21. csrf令牌使用
- 22. CSRF令牌生成
- 23. Laravel behat CSRF令牌
- 24. 避免CSRF令牌
- 25. 瞭解CSRF令牌
- 26. csrf令牌跟進
- 27. Flask-Security CSRF令牌
- 28. CSRF同步令牌
- 29. Django的CSRF令牌
- 30. CSRF令牌驗證
你可以看看下面的鏈接。 ['曲奇與令牌。使用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