【发布时间】:2021-05-27 17:12:27
【问题描述】:
rfc explicitly 要求仅当内容类型为 form-url-encoded 时才在正文中传递令牌 背后的原因是什么?为什么不允许多部分?
解决方法:
这会给浏览器将内容类型设置为 multiparty/form-data 的文件上传带来问题
最常见的解决方案是在查询字符串中传递令牌,这对于日志或历史记录是不安全的。
【问题讨论】:
标签: oauth-2.0 oauth spring-security-oauth2
rfc explicitly 要求仅当内容类型为 form-url-encoded 时才在正文中传递令牌 背后的原因是什么?为什么不允许多部分?
解决方法:
这会给浏览器将内容类型设置为 multiparty/form-data 的文件上传带来问题
最常见的解决方案是在查询字符串中传递令牌,这对于日志或历史记录是不安全的。
【问题讨论】:
标签: oauth-2.0 oauth spring-security-oauth2
首选方法是使用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 中。
【讨论】: