Maven是否通过http以明文形式传输username/passwords

Does Maven transmit username/passwords in plaintext over http

如果我的 settings.xml 文件中有一个 username/password 用于使用 HTTP(不是 HTTPS)URL 的 (Nexus) 远程存储库,这个 username/password 会是以明文形式发送到远程服务器?

我想知道我们的 public-facing HTTP-only password-authenticated Nexus 服务器是否存在潜在的安全问题。

Maven 使用 HTTP 基本身份验证来发送凭据。典型的 HTTP header 看起来类似于:

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

其中 QWxhZGRpbjpvcGVuIHNlc2FtZQ== 实际上是 username:password 组合的 Base64 编码表示。这不提供任何安全性,但它也不是 plain-text。

更多关于HTTP Basic认证的详细信息,您可以查看here

大多数构建工具,如 Maven、Ant、Gradle、SBT、npm,都使用 HTTP Basic。这并不像它应该的那样安全。通过 HTTPS 使用它可以让您感觉更安全。 :)