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

能够在JWT访问令牌的头部分中没有任何值的情况下访问API

秦鸿羽
2023-03-14

我正在测试一个使用OAuth机制来授权和访问API的Web应用程序。OAuth使用RS256算法对令牌进行签名。我注意到,当我传递JWT令牌时,我仍然能够访问API,该令牌具有空“Header”值,并且没有JWT令牌中的“验证签名”部分。

示例:原始JWT令牌-

根据标准安全最佳实践,标头不应接受“无”算法,建议的算法应为HS256或RS256。但在上述情况下,API使用null头值成功授权。我甚至尝试了在标题中使用“none”算法,但API仍然被接受。

由于算法未在API中验证,是否存在安全问题?我想知道攻击者如何利用此场景利用API进行攻击


共有1个答案

姬经义
2023-03-14

如果您正在更改标头部分或签名部分(例如不发送它们),并且API仍然接受令牌,那么这意味着API根本不验证签名。这意味着您可以将任何内容放入有效负载中,在base 64中编码,API将接受它为有效令牌。

这不是一个“安全问题”,它只是一个完全错误的实现。

 类似资料:
  • 我很难让Auth0以JWT格式返回访问令牌。我需要JWT格式的文件,以便使用javajwt库验证它们。 我正在使用Auth0登录,并使用获取访问令牌-我尝试将访问群体设置为我们的API标识符(在多个位置,包括lock auth参数和负载),但没有成功-返回访问令牌,但不是JWT。 或者,是否有用于验证“本机”Auth0访问令牌的Java库? 返回的代码用于POST到

  • 问题内容: 我试图将配置(例如URLs / etc)放入资源文件夹中,以供实用程序类使用。但是,我不想从任何地方的活动中传递上下文。我希望能够通过路径名(似乎使用assess /是为此用途设计的)来访问资源,而无需使用上下文来访问资源。 在这种特殊情况下,我希望单例实例化时在配置中使用某些东西。除了实例化期间的那一次之外,它不需要任何资源。因此,每次调用getInstance()时都必须传递Con

  • 问题内容: 我可以在没有jQuery的情况下访问数据属性吗? 使用jQuery很容易,但是如果没有jQuery,我在任何地方都看不到该怎么做。 如果我在Google上搜索“没有jQuery”,那么我得到的只是jQuery示例。 可能吗 问题答案: 在这里,我找到了这个例子: 因此,它看起来非常可行。

  • 我有几个AWS EC2实例,并在它们上部署了一个Rancher实例。在Rancher上,我使用Kubernetes部署了一个网站,它使用Istio部署来处理网络,我可以通过登录。我还使用AWS路由53来使URL工作,并使用nginx来实现跨EC2实例的负载平衡。 但是我希望能够只使用登录,因此删除端口。我有办法做到这一点吗? 编辑:我在31380上访问它,因为它被设置为使用NodePort(htt

  • 如何确定Authorization: Bearer中使用的JWT令牌...是访问令牌或刷新令牌。换句话说,是什么阻止用户在授权头中使用他的JWT刷新令牌而不是访问令牌。 当我在本指南https://github . com/starkandwayne/ultimate-guide-to-uaa/blob/master/docs/refresh-tokens . MD # jwt-refresh-t

  • 问题内容: 也许这是一个新手的错误,但我似乎无法访问的,所以我可以抓住从它。 我有没有形式的输入(即使用ui-mask指令): ui-mask将$ modelValue设置为与$ viewValue不同的值,从而很难将格式化的数据发送到服务器。当模型更改时,该值是不带斜杠的日期,例如。因此,我需要能够获取该输入的控制器,而不必将其包装为表单,而必须使用。一定有可能… 我知道我可以做的事情,但看起来