将 URL 中的用户名和密码传递给 `htpasswd` 保护域,它会被加密吗?
Passing username and password in URL to a `htpasswd` protected domain, would it be encrypted?
我知道您可以使用以下模式输入受 htpasswd 保护的 URL 的用户名、密码和域:
http://$username:$password@$Domain
例如:
http://sam:1234@example.com
但这适用于 HTTPS 域吗?如果是这样,用户名和密码会在传输过程中加密吗?
HTTP 基本身份验证存在一些问题:
- 密码以 base64 编码(可以轻松转换为明文)通过网络发送。
- 每次请求都会重复发送密码。 (更大的攻击window)
- 密码由网络浏览器缓存,至少为 window / 进程的长度。 (可以被对服务器的任何其他请求静默重用,例如 CSRF)。
- 如果用户要求,密码可能会永久存储在浏览器中。 (与上一点相同,此外可能被共享机器上的其他用户窃取)。
其中,使用 SSL 只能解决第一个问题。即使这样,SSL 也只会保护到网络服务器——任何内部路由、服务器日志记录等都将看到明文密码。
因此,与任何事情一样,重要的是要纵观全局。
HTTPS 是否保护传输中的密码?是的
够了吗?通常,没有。 (我想说,永远不会 - 但这实际上取决于您的网站是什么以及它需要多安全。)
完全记入以下答案(逐字复制)
https://security.stackexchange.com/questions/988/is-basic-auth-secure-if-done-over-https
我知道您可以使用以下模式输入受 htpasswd 保护的 URL 的用户名、密码和域:
http://$username:$password@$Domain
例如:
http://sam:1234@example.com
但这适用于 HTTPS 域吗?如果是这样,用户名和密码会在传输过程中加密吗?
HTTP 基本身份验证存在一些问题:
- 密码以 base64 编码(可以轻松转换为明文)通过网络发送。
- 每次请求都会重复发送密码。 (更大的攻击window)
- 密码由网络浏览器缓存,至少为 window / 进程的长度。 (可以被对服务器的任何其他请求静默重用,例如 CSRF)。
- 如果用户要求,密码可能会永久存储在浏览器中。 (与上一点相同,此外可能被共享机器上的其他用户窃取)。
其中,使用 SSL 只能解决第一个问题。即使这样,SSL 也只会保护到网络服务器——任何内部路由、服务器日志记录等都将看到明文密码。
因此,与任何事情一样,重要的是要纵观全局。
HTTPS 是否保护传输中的密码?是的
够了吗?通常,没有。 (我想说,永远不会 - 但这实际上取决于您的网站是什么以及它需要多安全。)
完全记入以下答案(逐字复制)
https://security.stackexchange.com/questions/988/is-basic-auth-secure-if-done-over-https