【问题标题】:basic authentication with REST in Solr 6.6.1Solr 6.6.1 中使用 REST 的基本身份验证
【发布时间】:2018-03-18 02:00:48
【问题描述】:

我按照他们的参考指南部署了具有基本身份验证的 Apache Solr 6.6.1。最后,他们讨论了如何安全地使用 curl。就我而言,我使用 REST API 来查询 SOLR。 由于基本身份验证,我正在使用此查询。 https://user:pswd@serverhost/solr/... 这样我的用户和密码就会暴露出来。我想知道通过 REST API 使用基本身份验证的最安全方法,不会暴露给外部世界。

【问题讨论】:

    标签: rest solr lucene basic-authentication


    【解决方案1】:

    如你所见here

    不推荐使用这些 URL。在 Chrome 中,用户名:密码@ 出于安全原因,甚至去掉了 URL 中的部分。在 Firefox 中,它 检查站点是否确实需要身份验证,如果不需要, Firefox 将通过提示“您即将登录到 用户名为“username”的站点“www.example.com”,但 网站不需要身份验证。这可能是一种尝试 骗你。”。

    您不需要在您的 URL 中公开它,您应该在您的请求中添加一个“授权”标头。该值将具有以 Base64 编码的“用户名:密码”,这是不安全的,但由于您使用的是 https,它将受到保护。

    标头的完整值类似于“Basic dXNlcm5hbWU6cGFzc3dvcmQ=”。它由身份验证类型(“基本”)加上空格加上以 Base64 编码的“用户名:密码”的值组成。

    【讨论】:

    • 你能给我一个例子吗?如何形成这个 ("Basic dXNlcm5hbWU6cGFzc3dvcmQ=") 编码值并在 https 请求中使用它。 ?
    • 这取决于你想要它。当您将身份验证设置为基本并提供凭据时,许多 Rest 客户端(PostMan、ARC、...)会自动执行此操作。在 java 中,您可以使用以下内容构建 http 客户端:stackoverflow.com/a/3283496/4891223
    • 我想将它用作我们提供给浏览器地址栏的 url,它应该在不提示登录的情况下向我们返回数据。我想要一个完整的 url 格式,其中包含基本身份验证用户和 pswd,但采用编码形式。
    • 如果您无法处理添加标头的请求,您将无法对其进行保护。标头将受 ssl 加密保护,而 URL 则不会。即使可以直接在 url 中使用 base64 编码形式,也不会比纯文本版本更安全,因为 base64 可以轻松解码。
    猜你喜欢
    • 2021-06-17
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 2016-05-04
    • 2013-06-06
    • 2016-03-20
    • 1970-01-01
    相关资源
    最近更新 更多