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

HTTP 授权标头 - 持有者令牌安全性

栾鸣
2023-03-14

我正在构建一个将从web和移动平台使用的API。

我需要一些帮助和建议来< code >改进我的无记名令牌授权。

当前的身份验证非常简单。我将假定发送的凭据是正确的:

  • 向APIendpoint发送电子邮件和密码
  • 存储具有到期日期的用户令牌
  • 使用用户授权令牌回复客户端

然后,任何其他操作授权包括:

  • 发送授权持有者“令牌”标头
  • 决定是否允许令牌所有者执行操作
  • 完成操作

我担心的是,如果有人只是查看请求头,那么很容易发现承载令牌。这将允许用户从任何rest客户端执行任何有害的请求。

大多数可能故意破坏的请求在应用程序上下文中都是完全有效的。因此,通过请求参数过滤掉它们并不容易。

我一直在考虑发送标题的可能性:

  • 用户授权令牌
  • 发送日期或任何其他参数
  • 哈希(令牌,其他参数)

在服务器上,我会分别比较每个参数,然后比较加密的哈希值。

因此,如果有人用不同的日期发送相同的哈希,它很容易被检测为入侵者。

你还有什么其他建议可以使通信更安全吗?

共有2个答案

胡曾笑
2023-03-14

在网络上可见的令牌必须具有加密的ip和用户代理(如果是网站)。这样,即使有人拥有你的令牌,他们也无法通过相同的ip和浏览器以外的任何其他方式发送令牌。

龙俊德
2023-03-14

您正在考虑使用日期和哈希的解决方案不会增加任何针对基本对手的安全性。令牌的到期应在数据库的服务器端进行管理。

Oauth 2威胁模型告诉您如何保护4.6.1节中的令牌。

 类似资料:
  • 我正在尝试获取通过角度发送到 php 的授权令牌。我的角度拦截器如下所示 现在如何在php中获取令牌?我试着遵循这个问题的答案。但这也没用。以下是使用上面答案中的代码时的输出。

  • 以下两个标头到底有什么区别: 我所经历的所有来源都将“授权”标头的值设置为“持有者”,后跟实际令牌。但是,我一直无法理解它的意义。如果我只是将令牌放在授权标头中会怎样?

  • 我正在尝试使用JWT身份验证设置一个简单的Angularjs应用程序。 我给新注册的用户发了一封带有jwt令牌链接的邮件,以验证该邮件是否存在。链接如下所示: < code > http://127 . 0 . 0 . 1:3000/verify email/eyj 0 exaioijkv 1 qilchbgcioijiuzi 1 nij 9 . eyj 1c 2 vytmftzsi 6 injp

  • 使用“承载”授权标头和使用自定义标头之间有区别吗?例如,“基本”授权标头不同于自定义标头,因为浏览器将“基本”授权标头视为特例(一些浏览器缓存“基本”授权标头)。换句话说,“承载”只是一个任意字符串还是浏览器知道它? 如果我不希望未来的浏览器缓存我的不记名令牌,我应该安全并使用自定义标头吗? 例如,这两者之间有区别吗(假设我的服务器可以处理这两者):

  • 目前在我的团队的web应用程序中,我们在一个名为Auth:“dfdfdf ...”的头中传递访问令牌.我们使用AWS Lambda和令牌授权器来访问我们的API网关资源。 还有一种不同类型的承载令牌头:授权:承载:通过Javascript发送授权令牌承载 区别是专有/命名,还是亚马逊的令牌授权人在功能上与承载令牌模式不同?

  • 我正在尝试连接到FatSecret API。这是他们为oauth2授权提供的留档链接:https://platform.fatsecret.com/api/Default.aspx?screen=rapiauth2#using-token-api 我已经完成了第一步和第二步,现在我被困在第三步。我已经设法用“application/json”更新了标题,但我不确定我的调用是否包括我创建的令牌。我得

  • 我目前正在尝试设置一个对一个具有基本授权的REST API(Cloudsight)的POST请求。到目前为止我的代码是: null null 当我尝试并运行它时,我得到错误:Uncatted SyntaxError:无法对“XMLHttpRequest”执行“set requestHeader”:“authorization:”不是有效的HTTP头字段名。 有人知道代码出了什么问题吗?我对Java

  • 如何在 Hangfire 中配置持有者令牌授权/身份验证? 我有一个自定义身份验证过滤器,它读取初始请求的身份验证令牌,但它返回401的所有其他请求(Hangfire调用)。 如何将身份令牌附加到HangFire执行的每个请求的标头中? 令牌过期后如何刷新?