该问题在某种程度上与以下链接的问题有关。但是,我需要在某些方面和一些其他信息上多一点清晰度。
这是我到目前为止所了解的:
对于第一个请求:
对于后续请求:
更多细节:
这是正确的方法吗?
为什么不将其简化为以下内容?
对于第一个请求:
对于后续请求:
在服务器端,令牌将与到期日期一起存储。每次访问该服务时,此日期都会被更新以创建滑动到期日。将有每隔几分钟运行的作业删除过期的令牌,并且检查令牌的有效会话的查询将仅检查那些未视为已过期的令牌(以防止由于预定原因导致计划的作业失败的永久会话)。
无需对数据库中的令牌进行哈希处理 和 加密-
除了通过隐晦性带来的安全感外,它没有增加任何实际价值。您可以只是散列。这样可以防止设法获得会话数据表的攻击者劫持现有的用户会话。
这个问题在某种程度上与下面的链接问题有关。然而,我需要在某些方面更多的澄清和一些额外的信息。参考:REST Web服务身份验证令牌实现 背景: null null 对于后续请求: 客户端发送此加密令牌和哈希组合(使用基本的用户名字段?) 我们使用哈希确保加密的令牌没有被篡改,然后对其解密 我们检查会话跟踪表中解密的令牌是否有未过期的条目,并获得实际的用户名(过期由代码管理?) 如果找到用户名,则根
我读到,当使用JWT时,不需要防止CSRF攻击,例如:“由于您不依赖cookie,您不需要防止跨站点请求”。 但是,有一点我不明白:如果我将令牌存储在localStorage中(正如我在同一网站的教程中被告知的那样),那么攻击者如何防止通过读取我的localStorage而不是Cookie来伪造恶意请求呢? 由于它是在服务器端生成的,我不知道如何在客户机请求中使用令牌而不将其存储在客户机的某个地方
我们有一个简单的应用程序,只有两个消费者和5个endpoint。对于一个endpoint,我需要某种身份验证方式。我喜欢这样做的条纹方式,但我不知道我如何可以在spring Boot中构建这个。 “对API的身份验证是通过HTTP基本身份验证执行的。请提供API密钥作为基本身份验证用户名值。不需要提供密码。”
我的问题是,对每个表单使用一个令牌,而不更新每个表单提交的令牌,安全吗?这能防止CSRF吗?
我正在使用JWTs为我的应用程序验证用户身份。当用户登录时,他们将获得一个访问令牌和一个刷新令牌。为了保证刷新令牌的安全,我不将其存储在客户端,而是将其与他们的帐户一起保存在后端,这样就不容易访问了。虽然我对刷新令牌的安全性感到困惑,但当我阅读关于如何使用刷新令牌的在线资源时,以下是我理解的逻辑: 身份验证 将访问令牌+刷新令牌存储在某个位置(在我的示例中,访问令牌位于前端,刷新令牌位于后端) 执
我已经创建了许多生成/使用JSON数据的Web服务,并使用OAuth2和承载令牌对它们进行了保护,效果很好。 然而,现在我需要构建一个类似的Web服务来生成图像而不是JSON(即JPEG/PNG数据)。为了保持一致性,我也想用OAuth2/承载令牌来保护服务,但是这样做会使服务在基于浏览器的应用程序中更具挑战性,这些应用程序希望使用 我认为有两种方法可以解决这个问题: > 修改OAuth2基础设施