Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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
Security 注销后使用JWT_Security_Session_Authentication_Authorization_Jwt - Fatal编程技术网

Security 注销后使用JWT

Security 注销后使用JWT,security,session,authentication,authorization,jwt,Security,Session,Authentication,Authorization,Jwt,我有一个疑问,用户注销后是否可以使用当前JWT 场景:我有一组私有API,需要授权令牌才能访问端点。这里我有一个web应用程序,我需要登录并获取JWT。我将令牌放在一边,并在活动会话中按下注销按钮,我的会话需要到期,即使我能够使用JWT访问端点,这是如何发生的?这是正确的方法还是我可以将其作为错误提出?这是如何发生的? 会话详细信息可能存储在JWT本身中,并且没有相同的服务器端状态。每次您发送JWT时,他们都试图对其进行解密,然后验证其中的声明并提供所需的访问。由于JWT本身包含其到期信息,因此

我有一个疑问,用户注销后是否可以使用当前JWT

场景:我有一组私有API,需要授权令牌才能访问端点。这里我有一个web应用程序,我需要登录并获取JWT。我将令牌放在一边,并在活动会话中按下注销按钮,我的会话需要到期,即使我能够使用JWT访问端点,这是如何发生的?这是正确的方法还是我可以将其作为错误提出?

这是如何发生的?

会话详细信息可能存储在JWT本身中,并且没有相同的服务器端状态。每次您发送JWT时,他们都试图对其进行解密,然后验证其中的声明并提供所需的访问。由于JWT本身包含其到期信息,因此它们无法使其失效。它将在创建令牌时确定的指定时间后过期。他们可能只是在注销时清除cookie

这是正确的方法吗?

视情况而定。这是速度和安全性之间的权衡。为了撤销令牌访问,应该有一个服务器状态来维护访问/撤销令牌集。如果应用程序未存储任何机密/敏感信息,则设计要求他们选择服务器状态。如果站点使用https且不使用XSS,那么以某种方式获取令牌的唯一方法就是获得对设备的物理访问权。如果访问令牌的到期时间小于20分钟,则风险最小。但这主要取决于应用的性质。例如,对于银行应用程序来说,这不是一种正确的方法

我能引起一个错误吗?


你应该确认这个假设。有可能他们实际上有一个基础设施来撤销访问令牌,但到目前为止它还是有问题的

感谢@Chaitanya,1的回复。在我的例子中,访问令牌的有效期为10小时,我猜它太高了,并且容易受到存储的XSS的攻击。2.这不是银行应用程序,而是员工团队管理,其中存储并批准了所有员工的详细信息和工作工件的更高权限用户。我认为这是一个bug,因为API调用是通过未加密的通道(即HTTP)传递给服务器的。