HTTP基本身份验证凭据在URL和加密中传递

时间:2010-04-26 21:22:27

标签: https basic-authentication

我对HTTPS和HTTP身份验证凭据有疑问。

假设我使用HTTP身份验证保护URL:

<Directory /var/www/webcallback>
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /var/www/passwd/passwords
Require user gooduser
</Directory>

然后,我通过HTTPS从远程系统访问该URL,并在URL中传递凭据:

https://gooduser:secretpassword@www.example.com/webcallback?foo=bar

用户名和密码是否会自动进行SSL加密? GET和POST也是如此吗?我很难找到这个信息的可靠来源。

3 个答案:

答案 0 :(得分:223)

  

用户名和密码是否会自动进行SSL加密? GET和POST也是如此

是的,是的。

当SSL正在使用时,整个通信(如果主机名的IP尚未缓存,则保存为DNS查找)。

答案 1 :(得分:22)

  

是的,它会被加密。

如果您只是查看幕后发生的事情,您就会明白。

  1. 浏览器或应用程序将首先分解URL并尝试使用DNS查询获取主机的IP。即:将发出DNS请求以查找域的IP地址(www.example.com)。请注意,此请求不会发送任何其他信息。
  2. 浏览器或应用程序将使用从DNS请求收到的IP地址启动SSL连接。证书将被交换,这发生在运输层面。此时不会传输任何应用程序级别的信息。请记住,基本身份验证是HTTP的一部分,HTTP是应用程序级协议。 不是传输层任务。
  3. 建立SSL连接后,现在必要的数据将传递给服务器。即:路径或URL,参数和基本认证用户名和密码。

答案 2 :(得分:-6)

不一定是真的。它将在线路上加密,但它仍然落在日志纯文本