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

rco*_*tna 242 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>
Run Code Online (Sandbox Code Playgroud)

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

https://gooduser:secretpassword@www.example.com/webcallback?foo=bar
Run Code Online (Sandbox Code Playgroud)

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

Que*_*tin 230

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

对对对.

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

  • +1.GET和POST(包括URL)都是加密的.我只会添加 - 像firebug和Tamper数据这样的工具能够显示未加密的结果*只是因为*它们是浏览器的一部分,因此能够在加密之前拦截请求.一旦通过线路发送,一切都被加密. (23认同)
  • 要明确的是,除了域之外的所有内容都是加密的.如果有人偶然发现并想要更详细的答案,请参阅http://answers.google.com/answers/threadview/id/758002.html (21认同)
  • 为了完整起见,"[Internet Explorer不支持网站地址(HTTP或HTTPS URL)中的用户名和密码]](http://support.microsoft.com/kb/834489/en-us)"看起来只有Internet Explorer版本3.0到6.0支持HTTP或HTTPS URL的以下语法:http(s):// username:password@server/resource.ext注意:默认行为的此更改不会影响其他协议.例如,在安装832894安全更新后,仍可以在FTP URL中包含用户信息. (7认同)

Ruc*_*ana 24

是的,它会被加密.

如果您只是查看幕后发生的事情,您就会明白这一点.

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