首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于多选项卡浏览的相同CSRF令牌

用于多选项卡浏览的相同CSRF令牌
EN

Security用户
提问于 2016-09-16 05:47:21
回答 2查看 5.5K关注 0票数 1

对于我的CSRF令牌函数(它更改每个请求的令牌),我有一个小问题。下面是我的问题的场景:

当我打开2页(使用相同的CSRF令牌)时,当我打开第一页并在那里提交表单时,第二页的表单不起作用(因为CSRF令牌的值被更改)。如果你从用户的体验来看待它,它会留下一个不好的味道,所以我需要改变它。

我的问题是,如何使我的CSRF令牌功能,工作在多选项卡浏览,同时不影响安全性和更好的用户体验?因为我希望他们有一个更好的用户体验,而不影响他们的浏览安全。

EN

回答 2

Security用户

发布于 2016-09-18 05:59:29

每个会话使用一个CSRF令牌(而不是每个请求或每个用户)。例如,CSRF令牌可以是纯文本会话ID,也可以是会话密钥的加密或安全散列(例如HMAC)版本。也可以将CSRF令牌存储为与会话密钥关联的会话变量。这些都是共同的选择。

如果您想知道这是否会使您的站点更不安全,请阅读这篇文章以获得保证。

如果您碰巧使用的是ASP.NET框架,则只需将Page.ViewStateUserKey设置为会话ID即可。

票数 1
EN

Security用户

发布于 2016-09-16 07:09:19

我们需要更多细节。你在使用框架吗?

此外,如果您要为每个请求创建一个令牌,为什么两个选项卡具有相同的一个?这和你说的有点矛盾。

或者我误解了,您的意思是一次只有一个csrf令牌“活动”。在这种情况下,修复将很容易,允许多个CSRF令牌同时有效(通过保存发送服务器端的列表)。这样,两个不同的制表符有两个不同的标记,它们都是有效的。

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

https://security.stackexchange.com/questions/136925

复制
相关文章

相似问题

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