首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于水手的CSRF令牌存储

基于水手的CSRF令牌存储
EN

Stack Overflow用户
提问于 2015-07-23 21:12:31
回答 1查看 1.4K关注 0票数 1

我正在开发一种企业解决方案,使用sailsjs作为nodejs框架。安全是执行工作的组成部分。除了SSL,CORS,我们还使用了水手的CSRF实现。我仍然在评估使用这个令牌有多安全。有谁能指导一下:水手在哪里储存CSRF令牌?加密了吗?它使用起来有多安全?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-23 21:19:55

您需要做一些工作来验证您的令牌对不受信任的服务器是不可访问的;它们应该只响应于获取请求,而且它们不应该通过AJAX访问,也不应该启用CORS头。

PillarJS有一个CSRF的优秀自述。它说的是CSRF令牌:

CSRF令牌 唉,最后的解决方案是使用CSRF令牌。CSRF令牌是如何工作的? 服务器向客户端发送令牌。客户端提交带有令牌的表单。如果令牌无效,服务器将拒绝请求。攻击者必须以某种方式从您的站点获取CSRF令牌,并且他们必须使用JavaScript才能做到这一点。因此,如果您的站点不支持CORS,那么攻击者就无法获得CSRF令牌,从而消除威胁。 确保不能用AJAX访问CSRF令牌!不要仅仅为了获取一个令牌而创建一个/csrf路由,尤其是不支持该路由上的CORS! 令牌只需要是“不可猜测的”,使得攻击者在几次尝试中就很难成功。它不必是密码安全的。攻击是未知用户的一两次点击,而不是服务器的暴力攻击。

另外,考虑一下Sails.js文档中的这一点,它给出了一个真实的例子,说明它们是如何运作的:

CSRF令牌是临时的和特定于会话的;例如,假设Mary和Muhammad都是在Sails上运行的访问我们电子商务站点的购物者,并且启用了CSRF保护。假设周一,玛丽和穆罕默德都在购物。为了做到这一点,我们的网站需要至少分发两种不同的CSRF令牌-一个给玛丽,一个给穆罕默德。从那时起,如果我们的web后端收到了一个包含丢失或不正确令牌的请求,则该请求将被拒绝。因此,现在我们可以放心,当玛丽导航到网上玩扑克,第三方网站不能欺骗浏览器发送恶意请求到我们的网站使用她的曲奇。

最后,Sails.js使用连接CSRF保护中间件。令牌按每个会话存储,因此不存储在数据库中,也不需要(双重)加密。下面是另一个很好的答案:为什么Express/Connect会在每个请求上生成新的CSRF令牌?

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31598120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档