【问题标题】:Why oauth doesn't permit token in body multipart/form-data为什么 oauth 不允许在正文 multipart/form-data 中使用令牌
【发布时间】:2021-05-27 17:12:27
【问题描述】:

rfc explicitly 要求仅当内容类型为 form-url-encoded 时才在正文中传递令牌 背后的原因是什么?为什么不允许多部分?

解决方法:
这会给浏览器将内容类型设置为 multiparty/form-data 的文件上传带来问题

最常见的解决方案是在查询字符串中传递令牌,这对于日志或历史记录是不安全的。

【问题讨论】:

    标签: oauth-2.0 oauth spring-security-oauth2


    【解决方案1】:

    首选方法是使用Authorization 标头发送访问令牌。正文和 URL 变体在规范中用于启用对由于某种原因无法设置 HTTP 标头值的客户端的 OAuth。为了限制可能性,服务器必须将标准限制使用处理为仅form-url-encoded。您可以在此答案中阅读更多有关由此产生的问题的信息:Why do we prefer Authorization Header to send bearer token to server over other techniques like URL encoding

    简而言之 - 资源服务器要支持使用不同内容类型接收访问令牌会更加复杂。我相信这是这个决定背后的主要原因(尽管可能存在一些我不知道的安全隐患)。

    一般来说,最好的解决方案是在 Authorization 标头中传递令牌,而不是在正文或 URL 中。

    【讨论】:

      猜你喜欢
      • 2016-01-27
      • 2018-04-07
      • 2010-11-05
      • 1970-01-01
      • 2020-01-26
      • 2012-05-01
      • 2023-04-03
      相关资源
      最近更新 更多