在利用令人惊叹的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