Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jwt 将cookie身份验证会话转换为令牌安全吗?_Jwt_Xss_Csrf - Fatal编程技术网

Jwt 将cookie身份验证会话转换为令牌安全吗?

Jwt 将cookie身份验证会话转换为令牌安全吗?,jwt,xss,csrf,Jwt,Xss,Csrf,我想创建一个http服务处理程序,将现有的身份验证会话cookie转换为令牌(即JSON Web令牌)。我是否应该担心XSS或任何其他漏洞,或者我只是被现代浏览器默认禁用CORS所覆盖?如果没有关于用例的更多信息,很难判断这一点:这取决于JSON web令牌中将包含哪些信息,它将被发送到哪些客户端(例如,在不同的域中和/或由不同的实体控制),这些客户端将如何使用它(例如,是否通过https),以及客户端使用什么(例如,它将作为用户或在一组受限权限下使用) 还要注意,标准OAuth 2.0已经允许

我想创建一个http服务处理程序,将现有的身份验证会话cookie转换为令牌(即JSON Web令牌)。我是否应该担心XSS或任何其他漏洞,或者我只是被现代浏览器默认禁用CORS所覆盖?

如果没有关于用例的更多信息,很难判断这一点:这取决于JSON web令牌中将包含哪些信息,它将被发送到哪些客户端(例如,在不同的域中和/或由不同的实体控制),这些客户端将如何使用它(例如,是否通过https),以及客户端使用什么(例如,它将作为用户或在一组受限权限下使用)


还要注意,标准OAuth 2.0已经允许这种情况:您可以利用现有的web会话(即在
code
流中)要针对授权服务器进行身份验证并向OAuth 2.0客户端发送令牌,OAuth 2.0规范的正确实现将保证针对所述漏洞

如果我正确理解,您的服务处理程序仅将会话cookie值作为输入,然后作为JSON输出


在这种情况下,只要您使用一个标准的、经过测试的JSON编码器,您就可以安全地使用。这不应该是一个问题,因为您的方法是a,并且会阻止另一个域读取您的cookie,因为您没有选择CORS。

谢谢Hans。这是您关于OAuth的一个很好的观点。它听起来确实像一个类似的工作流。O不同之处在于,通常OAuth提供商第一次询问用户是否允许requestor example.com访问OAuth,并且用户必须同意。在我的情况下,我的软件不会询问用户,但另一方面,我的服务器有一个受限的访问控制允许源列表。我打算将其用于不同的子域我的网站以及移动应用程序的s始终在https和我的软件中。我希望使用作用域来降低风险。我认为另一个区别是OAuth将调用者重定向到请求的url(通过询问用户或预注册或两者授权)使用url中的令牌,而我希望我的http请求处理程序直接在http响应正文中返回令牌。a)OAuth 2.0还允许不需要明确同意的场景,并且通过白名单安排“预授权”;b) OAuth 2.0也有后期绑定,请参阅。在我看来,假设适当的访问控制允许源代码,这没关系,除非我遗漏了什么。好吧,OAuth 2.0流是通过(完整的)浏览器处理的,而不是在Ajax调用中处理的,因此CORS不适用于发布/获取访问令牌的机制,也不适用于从cookie到令牌的“转换”;如果您希望在Ajax调用中对API使用它,而不是在接收它的域中使用它,则可以使用它,但这超出了OAuth 2.0