尽管缺少 'Bearer',但请求成功
Successful Request despite missing 'Bearer'
好的,
所以我向 Microsoft Graph API 提出了一个请求,该请求用于在 One Drive 上创建一个文件夹。通常我所有的请求都有 header:
"Authorization": "Bearer <token>"
指定我正在使用 Bearer 类型的令牌请求访问。
不过,有一个请求好像漏网了。
此请求具有以下结构:
{
Method: POST,
RequestUri: 'https://graph.microsoft.com/beta/<tenantid>/groups/<groupid>/drive/items/<folderid>/children/',
Version: 1.1,
Content: System.Net.Http.StringContent,
Headers: {
Authorization: <token>
Content-Type: application/json;charset=utf-8
}
}
如您所见,缺少授权 header 中的 'Bearer' 关键字。
奇怪的是这次请求成功了,而且图表不需要关键字。
我的问题本质上是这样的:
为什么该请求会成功,是否有任何安全考虑或疏忽因此成功而突出显示?
谢谢,
谢谢大家的反馈!请注意,如果未提供类型,Microsoft Graph beta 和 v1.0 API 版本默认为不记名令牌类型。这种方法没有安全风险,因为截至 2016 年 4 月,它是唯一受支持的令牌类型。我们的文档指出,最好的做法是明确提供令牌类型。
请注意,虽然 RFC 要求服务器必须支持承载,但没有说明在没有承载的情况下接受令牌。
我们会考虑在下一个 API 版本中解决这个问题。
好的,
所以我向 Microsoft Graph API 提出了一个请求,该请求用于在 One Drive 上创建一个文件夹。通常我所有的请求都有 header:
"Authorization": "Bearer <token>"
指定我正在使用 Bearer 类型的令牌请求访问。
不过,有一个请求好像漏网了。
此请求具有以下结构:
{
Method: POST,
RequestUri: 'https://graph.microsoft.com/beta/<tenantid>/groups/<groupid>/drive/items/<folderid>/children/',
Version: 1.1,
Content: System.Net.Http.StringContent,
Headers: {
Authorization: <token>
Content-Type: application/json;charset=utf-8
}
}
如您所见,缺少授权 header 中的 'Bearer' 关键字。
奇怪的是这次请求成功了,而且图表不需要关键字。
我的问题本质上是这样的:
为什么该请求会成功,是否有任何安全考虑或疏忽因此成功而突出显示?
谢谢,
谢谢大家的反馈!请注意,如果未提供类型,Microsoft Graph beta 和 v1.0 API 版本默认为不记名令牌类型。这种方法没有安全风险,因为截至 2016 年 4 月,它是唯一受支持的令牌类型。我们的文档指出,最好的做法是明确提供令牌类型。
请注意,虽然 RFC 要求服务器必须支持承载,但没有说明在没有承载的情况下接受令牌。
我们会考虑在下一个 API 版本中解决这个问题。