是否curl -u username:password http://example.com安全?
如果没有,您能否简要说明有人如何获得您的密码?
Dmi*_*yev 54
这是不安全的,因为 cURL默认使用基本身份验证,其中 HTTP 协议以明文形式发送您的密码。当您指定username:password字符串时,它会在 HTTP 标头中转换为BASE64字符串:
GET / HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Run Code Online (Sandbox Code Playgroud)
任何能够拦截您的 HTTP 流量的人(您的提供商、任何与您访问相同无线 AP 的人等)都可以通过简单地使用在线 BASE64 转换器来恢复密码。
HTTPS 协议将通过在发送此标头之前建立加密连接来使事情变得更好,从而防止密码被泄露。但是,这仅适用于用户在被要求确认未知证书、授权安全异常等时注意的情况。
请注意,命令参数可能可供同一台机器上的其他用户查看,例如ps -ef,/proc 文件系统、bash 历史记录和终端日志(感谢@Lambert 的评论指出这一点)。某些平台上的 cURL 试图隐藏密码,因此例如ps -ef您可能会看到空格而不是密码。但是,与其将密码作为命令行参数传递,不如让 cURL 直接提示输入密码更好,如cURL 常见问题中所述。
小智 24
它不安全。命令行参数对所有用户可见。
| 归档时间: |
|
| 查看次数: |
45363 次 |
| 最近记录: |