gpt4 book ai didi

http - 在 HTTP Basic Auth 的 URL 中传递用户名和密码

转载 作者:可可西里 更新时间:2023-11-01 15:26:53 26 4
gpt4 key购买 nike

当传递以 URL 编码的用户名和密码时,例如: https://Aladdin:OpenSesame@www.example.com/index.html

客户端实际上是在授权 header 中发送这个吗?这种URL编码在服务端需要做什么样的处理?

最佳答案

客户端实际上是在授权 header 中发送这个吗?

这取决于客户是什么。如果客户端是浏览器,答案是否定的。下面是实验结果:

  • 在 Chrome 中,不会发送任何授权 header 。
  • 在 Firefox 中,不发送任何授权 header 。 Firefox 还会提示一个确认对话框,因为主动发送身份验证信息很奇怪。
  • 在 Safari 中,不发送任何授权 header 。 Safari 也会首先显示警告页面,因为它怀疑该 URL 属于钓鱼网站。
  • 在 Opera 中,不发送授权 header 。
  • 我使用的是 Mac,无法在 IE/Edge 上运行实验。但根据其他浏览器的合理行为,我猜 IE/Edge 也会这样做。不管怎样,如果有人进行实验并得到结果,我将不胜感激。

一般来说,出于安全原因,浏览器会忽略在 URL 中主动发送的身份验证信息。

但是,如果客户端是一个开发工具,认证信息可以用base64编码并作为Authorization header发送。这是一些实验结果:

  • 在 curl 中,是的,已发送授权 header 。
  • 在 Postman 中,不发送任何授权 header 。

是否发送授权 header 取决于工具的设计。

对于这种URL编码,服务器端需要做什么样的处理?

在服务器端,你需要做的就是从Authorization header中获取base64编码的字符串,解码它,并检查它是否有效。

如果在示例 URL 中使用 HTTP 协议(protocol),会有什么不同吗?

为了安全,是的,通过 HTTP 的授权 header 非常不安全。 Base64编码/解码不会带来任何安全利益,每个人都可以解码。

否则,它们是相同的。

关于http - 在 HTTP Basic Auth 的 URL 中传递用户名和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43797979/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com