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

JWT在非安全网络上的安全性与forms身份验证的比较

沈弘文
2023-03-14

我试图学习JSON Web令牌(JWT),并使用在ASP.NET Web API和Identity 2.1中实现OAuth JSON Web令牌身份验证--第3部分中提供的系列文章成功地完成了一个示例。

我了解了JWT,并喜欢使用https://JWT.io/中的JWT调试器对令牌进行解码。令牌没有加密--只是编码。

问题1与ASP.NET窗体身份验证相比,JWT的安全性如何?它是更多、更少还是相等的安全网络和不安全网络?

问题2“如何避免Web应用程序中的会话劫持”这篇文章说明了一种方法,用于验证登录期间发出session_id的IP地址,以及application_acquirerequeststate事件中所有后续请求的IP地址。如果会话id存储在服务器中,这将是可能的。

如果我也将原始IP地址存储在JWT令牌上,是否有方法确保令牌不是伪造的(以验证每个请求中的原始IP地址和当前IP地址)?

    null

共有1个答案

黎震博
2023-03-14

JWT的内容可见性不是一个安全问题,因为通过数字签名可以防止内容被更改。但是,如果攻击者能够访问令牌,他就可以模拟用户。因此,如果正确,请使用HTTPS,并将令牌保存在安全存储中

如果你想隐藏内容。JWT可以与JWE加密一起使用。

窗体身份验证可能会使用cookie中的不透明令牌来维护服务器会话。因此,如果将JWT存储在标记有HTTPOnly的cookie中,我会说安全级别或多或少是相同的。注意,Cookie容易受到CSRF攻击。但是,将JWT存储在localStorage或使用javascript accesible中会使其容易受到XSS攻击。

但是验证客户端IP也有缺点,例如在移动设备中,当用户从wifi切换到4G时,IP会发生变化,那么当前的令牌将被拒绝

 类似资料:
  • 问题内容: 背景: 我正在为REST Web服务设计身份验证方案。这并不是“真正”需要安全的(它更多是一个个人项目),但我想使其与练习/学习经验一样安全。我不想使用SSL,因为我不想麻烦,而在大多数情况下,它不需要设置它。 要解决这个问题: S3和OAuth都依赖于对请求URL以及一些选定的标头进行签名。他们都没有在POST或PUT请求的请求主体上签名。这难道不容易受到中间人攻击,这种中间人攻击会

  • 我已经实现了一个无状态服务器,它使用JWT让用户访问api。我关心的是安全问题。之前也有同样的问题,但没有得到很好的回答:JWT、无状态身份验证和安全性 问题:使用一些因素,如JWE(加密令牌)或使用强秘密来签署令牌 如果秘密钥匙被盗怎么办?然后,无论我们使用了多少安全层,黑客都可以使用密钥生成有效令牌并访问所有API。是否有任何解决方案使其更安全?

  • 我正在开发REST webService,我的一些客户机将使用我的webservices,所以为了识别真正的客户机,我决定给每个真正的客户机一个唯一的应用程序令牌。客户机将对这个令牌进行编码,他们将把这个令牌放在请求头中,我已经在我的REST webservices中配置了一个REST过滤器来验证令牌。我不想使用https。我的问题是,任何人都可以从我的客户端站点获取该令牌,并可以使用我的REST

  • 我正在尝试让JDBC身份验证与我的小辅助项目一起工作,从表面上看,它应该可以工作,但它没有。所有的配置都遵循贝娄。 如果我切换到具有相同用户名/密码的inMemory身份验证,它就会非常工作。 这是我记录输出时得到的结果:

  • 但是该实现假设身份验证也是通过存储在数据库中的密码(@Password注释)完成的。我们希望根据LDAP对用户进行身份验证,然后根据存储在数据库中的内容分配角色。 是否有可用的教程/拦截器?我为每一个输入感到高兴? PS:quarkus安全ldap扩展不是解决方案,因为它假设角色也存储在ldap中。