【问题标题】:HTTP basic authentication URL with special characters带有特殊字符的 HTTP 基本认证 URL
【发布时间】:2021-03-29 16:10:34
【问题描述】:

我正在使用托管的 Artifactory RubyGems 远程仓库来拉取依赖项。 Artifactory 远程仓库使用基本身份验证,所以我需要提供gem source -a 'https://${user}:${passwd}@my_artifactory.com/artifactory/api/gems/mygems 格式的用户名和密码

问题是我的用户名是一个电子邮件地址,而我的密码也包含特殊字符('#'、'&' 和 '^')。我尝试对各种 url 部分进行百分比编码,但没有任何效果

${user} 的格式为abc@example.com,${passwd} 的格式为1a^2b#3c&4d

【问题讨论】:

    标签: ruby-on-rails http rubygems


    【解决方案1】:

    您是否通过网络浏览器对其进行测试? Chrome 正在剥离身份验证详细信息

    不推荐使用这些 URL。在 Chrome 中,出于安全原因,URL 中的 username:password@ 部分甚至被删除了。在 Firefox 中,它会检查该站点是否确实需要身份验证,如果不需要,Firefox 将警告用户提示“您将使用用户名“username”登录到站点“www.example.com”,但是网站不需要身份验证。这可能是在试图欺骗您。”

    https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication

    如果不是 Chrome 将其剥离出来,也许您错误地漏掉了一个字符?尝试使用此网站对其进行编码,看看是否可行。

    https://meyerweb.com/eric/tools/dencoder/

    【讨论】:

    • 不,我没有使用 Web 浏览器,而是使用 CLI。我尝试了以下但没有奏效: - 对整个字符串进行编码 - 在用户名或主机名中仅编码 @ - 在我的密码中编码特殊字符
    【解决方案2】:

    事实证明,我应该编码用户名 + 密码,而不是两者之间的 :

    【讨论】:

      猜你喜欢
      • 2016-08-23
      • 2012-07-30
      • 2015-02-25
      • 2020-06-11
      • 2012-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-24
      相关资源
      最近更新 更多