当前位置: 首页 > 知识库问答 >
问题:

使用令牌保护REST Web服务(Java)

岳炎彬
2023-03-14

这个问题在某种程度上与下面的链接问题有关。然而,我需要在某些方面更多的澄清和一些额外的信息。参考:REST Web服务身份验证令牌实现

背景:

    null
    null

对于后续请求:

  1. 客户端发送此加密令牌和哈希组合(使用基本的用户名字段?)
  2. 我们使用哈希确保加密的令牌没有被篡改,然后对其解密
  3. 我们检查会话跟踪表中解密的令牌是否有未过期的条目,并获得实际的用户名(过期由代码管理?)
  4. 如果找到用户名,则根据允许的角色配置允许的操作

更多详情:

    null

这是正确的做法吗?

共有1个答案

莫典
2023-03-14

为什么不简化为以下内容呢?

对于第一个请求:

  • 用户建立到服务器的HTTPS连接(服务不侦听任何其他端口),并将凭据发布到登录服务。
  • 服务器使用HSTS头进行答复,以确保所有进一步的通信都是HTTPS。
  • 如果凭据有效,我们:
    • 生成使用CSPRNG安全生成的随机临时令牌。使其足够长以确保安全(128位)。
    • 将随机令牌存储在服务器上,将其映射到实际用户名。
    • 将随机令牌发送到客户端
      null

    不需要对数据库中的令牌进行散列和加密--除了通过隐蔽性增加一点安全性之外,它并没有增加任何真正的价值。但你可以直接散列。这将防止设法获取会话数据表的攻击者劫持现有的用户会话。

 类似资料:
  • 问题内容: 该问题在某种程度上与以下链接的问题有关。但是,我需要在某些方面和一些其他信息上多一点清晰度。 我需要使用令牌为REST Web服务实现安全性 该Web服务旨在与Java客户端一起使用。因此,表单身份验证和凭据弹出窗口没有用。 我是REST安全和加密的新手 这是我到目前为止所了解的: 对于第一个请求: 用户建立https连接(或容器使用301确保https) 用户POST输入用户名和密码

  • 我读到,当使用JWT时,不需要防止CSRF攻击,例如:“由于您不依赖cookie,您不需要防止跨站点请求”。 但是,有一点我不明白:如果我将令牌存储在localStorage中(正如我在同一网站的教程中被告知的那样),那么攻击者如何防止通过读取我的localStorage而不是Cookie来伪造恶意请求呢? 由于它是在服务器端生成的,我不知道如何在客户机请求中使用令牌而不将其存储在客户机的某个地方

  • 我们有一个简单的应用程序,只有两个消费者和5个endpoint。对于一个endpoint,我需要某种身份验证方式。我喜欢这样做的条纹方式,但我不知道我如何可以在spring Boot中构建这个。 “对API的身份验证是通过HTTP基本身份验证执行的。请提供API密钥作为基本身份验证用户名值。不需要提供密码。”

  • 我的问题是,对每个表单使用一个令牌,而不更新每个表单提交的令牌,安全吗?这能防止CSRF吗?

  • 我正在使用JWTs为我的应用程序验证用户身份。当用户登录时,他们将获得一个访问令牌和一个刷新令牌。为了保证刷新令牌的安全,我不将其存储在客户端,而是将其与他们的帐户一起保存在后端,这样就不容易访问了。虽然我对刷新令牌的安全性感到困惑,但当我阅读关于如何使用刷新令牌的在线资源时,以下是我理解的逻辑: 身份验证 将访问令牌+刷新令牌存储在某个位置(在我的示例中,访问令牌位于前端,刷新令牌位于后端) 执

  • 我正在寻找一个最佳实践和高效的解决方案,以确保通过REST与Web客户端应用程序通信的多个微服务的安全。 当前设置: 这些微服务是用Java制作的,带有Spring框架,并运行在Docker容器中。 客户端是一个Angular 2应用程序。 我创建了一个新的µ服务,它将充当“网关”,是我的web客户端和其他服务之间的唯一通信点。 我从远程身份验证API检索JWT加密令牌(让我们称之为LOCK) 我