页面正文中的会话令牌

时间:2018-10-04 08:06:13

标签: security reverse-proxy bearer-token

场景: 当使用类似Varnish的缓存时,可以使用JS更新页面数据,以便可以使用用户特定的数据。这要求AJAX请求发送身份验证令牌,该令牌在登录时已分配给JS应用程序,并存储在浏览器的会话存储中。在非清漆网站上,会话cookie和xsrf令牌可用于每个请求,但在清漆缓存页面上不可用,因此需要在登录时检索它们并将其存储在会话期间。 JS无法访问加密cookie的内容,因此需要在登录响应的标头或主体中传递会话身份验证令牌,以便JS可以抓取,存储它,并在后续请求中返回它。整个周期通过https进行。

问题:

  1. 与使用标准相比,用户会话现在是否更容易受到攻击? 非梵文环境中的会话cookie?
  2. 使用会话存储来存储令牌是否是漏洞?
  3. 有没有更好的选择 解决方案?

1 个答案:

答案 0 :(得分:1)

简而言之,您的设置很棒。

  

与在非Varnish环境中使用标准会话cookie相比,现在用户会话是否更容易受到攻击?

不,您的实现比标准会话cookie更好。因为不建议将会话数据存储在cookie中,因为即使请求请求来自不同的来源,它也会在每个请求中发送cookie。这可能会导致XSRF漏洞。为了减轻这种情况,您应该在每个请求中添加xsrf token。但是,如果您也将xsrf token设置为cookie,则可能存在XSRF漏洞。

最好将会话数据和XSRF令牌存储在会话存储或本地存储中(取决于用例)。

  

使用会话存储来存储令牌是否存在漏洞?

不,只要您不将令牌存储在cookie中,那么您就可以使用了。

  

有更好的解决方案吗?

这取决于用例。对于您提供的方案,这是完美的。并且最好在请求的正文中发送会话令牌。例如Oauth的实现方式。
为了进行身份验证,您可以返回带有会话令牌和xsrf令牌的JSON数据作为响应,以供进一步使用。