为什么我们在 Header 上传递身份验证令牌?

Why we pass authentication token on Header?

我在 laravel 上有自己的登录概念。现在我想让它成为第三方登录解决方案。所以我必须了解很多事情。所以请告诉我

为什么我们总是在 Get 和 [=18= 的 header 上传递 Authentication token ]Post 方法 ?

为什么不直接 url(查询字符串)?

这个的优点缺点是什么?

将参数传递给 url 存在风险。 想象一下,如果您超出了记录流量的 firewall/proxy,攻击者可以获取令牌并做出想要的事情。

另请参阅此 Whosebug post

除了 Max 的回答之外,请参阅这篇 OWASP 文章,其中提到了一些更多细节,为什么将敏感信息放入查询参数不是一个好主意:

https://www.owasp.org/index.php/Information_exposure_through_query_strings_in_url

关于您为什么最好将此信息放入 header 的问题,resp。将其放入 URL 的缺点(或更好:威胁)是:

This allows attackers to obtain sensitive data such as usernames, passwords, tokens (authX), database details, and any other potentially sensitive data. Simply using HTTPS does not resolve this vulnerability.