在HTTP基本身份验证中,通过URL传递用户名和密码

6

如果在示例URL中使用HTTP协议,会有什么不同吗? - igobivo
1个回答

9
客户端是否实际在授权头中发送此内容? 这取决于客户端是什么。如果客户端是浏览器,答案是否定的。以下是实验结果:
- 在Chrome中,不会发送任何授权头。 - 在Firefox中,不会发送任何授权头。Firefox还会提示确认对话框,因为主动发送身份验证信息很奇怪。 - 在Safari中,不会发送任何授权头。Safari还会首先显示一个警告页面,因为它怀疑该URL属于钓鱼网站。 - 在Opera中,不会发送任何授权头。 - 我使用Mac,无法在IE/Edge上运行实验。但根据其他浏览器的行为是合理的,我猜想IE/Edge会采取相同的行动。无论如何,如果有人进行实验并获得结果,我将不胜感激。
一般来说,出于安全原因,浏览器会忽略在URL中主动发送的身份验证信息。
然而,如果客户端是开发工具,则身份验证信息可能以base64编码并作为授权标头发送。以下是一些实验结果:
- 在curl中,是的,授权标头已发送。 - 在Postman中,没有发送授权标头。
授权标头是否发送取决于工具的设计。 这种URL编码需要服务器端进行什么样的处理? 在服务器端,您只需要从授权头中获取base64编码字符串,对其进行解码并检查其是否有效。 如果使用HTTP协议,则此类URL编码是否有所不同? 出于安全考虑,通过HTTP的授权标头非常不安全。Base64编码/解码将不会产生任何安全利益,它可以被所有人解码。
否则,它们是相同的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接