【发布时间】:2020-01-08 14:45:44
【问题描述】:
我想创建一个 http 服务处理程序,它将现有的身份验证会话 cookie 转换为令牌(即 JSON Web 令牌)。我应该关注 XSS 或任何其他漏洞,还是只是被现代浏览器默认禁用 CORS 所覆盖?
【问题讨论】:
我想创建一个 http 服务处理程序,它将现有的身份验证会话 cookie 转换为令牌(即 JSON Web 令牌)。我应该关注 XSS 或任何其他漏洞,还是只是被现代浏览器默认禁用 CORS 所覆盖?
【问题讨论】:
如果没有关于用例的更多信息,这很难说:它取决于 JSON Web 令牌中将包含哪些信息,它将被发送到哪些客户端(例如,在不同的域中和/或由不同的实体控制) ,这些客户端将如何使用它(例如是否通过 https),以及客户端的用途(例如,它是作为用户还是在一组受限的权限下)
还请注意,标准 OAuth 2.0 已经允许这种情况:您可以利用现有的 Web 会话(即在 code 流中)对授权服务器进行身份验证并将令牌发送到 OAuth 2.0 客户端;正确实施 OAuth 2.0 规范将保证不会出现上述漏洞
【讨论】:
如果我理解正确,您的服务处理程序仅将会话 cookie 值作为输入,然后将其输出为 JSON?
在这种情况下,只要您使用标准的、久经考验的 JSON 编码器,您就可以安全地抵御XSS。 CSRF 应该不是问题,因为您的方法是 safe method,而 Same Origin Policy 将阻止您的 cookie 被另一个域读取,因为您没有选择使用 CORS。
【讨论】: