授权请求标头与凭据的 POST 请求正文

Posted

技术标签:

【中文标题】授权请求标头与凭据的 POST 请求正文【英文标题】:Authorization request header Vs POST request body for credentials 【发布时间】:2019-04-30 03:41:52 【问题描述】:

从前端向后端服务器发送用户凭据的正确方法是什么? 我看到一些开发人员使用授权标头和一些在 POST 正文中传递凭据的示例。

【问题讨论】:

这里没有对错之分——这在很大程度上取决于您要实施的标准。例如在 OAuth2 中,使用了标头。 【参考方案1】:

网站向服务器传输密码的唯一安全方法是使用 HTTPS/SSL。如果连接本身没有加密,ManInTheMiddle 可以修改或删除任何发送给客户端的 javascript。所以你不能依赖客户端散列。

此外,始终使用标头发送敏感数据,例如 USER-ID、API-KEY、AUTH-TOKENS 您也可以参考此堆栈问题link 以获取更多信息和此link

【讨论】:

感谢您的链接 @unnik 谢谢【参考方案2】:

在尝试登录时,凭据通常会转到请求正文一次。 您应该收到一个令牌作为回报,尽管您是通过 HTTP 标头、请求正文还是作为 GET 参数发送此令牌取决于您(或您正在实施的协议)。

使用标头通常是一种好习惯,因为 GET 请求不应包含请求正文,并且将令牌作为 GET 参数传递可能并不总是一种选择(例如,由于令牌出现在各种日志中)。

无论哪种方式,我都建议您避免尝试实现自己的协议并改用现有标准。

【讨论】:

需要明确的是,在 GET 请求中将机密信息作为 URL 参数传递是不安全的,即使使用 HTTPS/SSL 也是如此。

以上是关于授权请求标头与凭据的 POST 请求正文的主要内容,如果未能解决你的问题,请参考以下文章

从自定义授权方 Lambda 函数访问 POST 请求正文

Google People API:请求具有无效的身份验证凭据 - 未设置授权承载标头

带有标头和原始 json 正文的 Volley POST 请求

PHP POST 请求中缺少授权标头

POST请求中缺少授权标头[重复]

无法设置 URLRequest 授权标头