gpt4 book ai didi

authentication - HTTP 授权 header 和查询字符串参数之间的区别

转载 作者:行者123 更新时间:2023-12-04 06:43:16 25 4
gpt4 key购买 nike

当我阅读与 Amazon S3 的交互时,我才知道使用 Amazon AWS 进行请求身份验证以两种方式完成

  • HTTP Authorization :
    使用 HTTP 授权 header 是提供身份验证信息的最常用方法
  • Query string parameters :
    当您想完全在 URL 中表达请求时,使用查询参数对请求进行身份验证很有用。此方法也称为预签名 URL。

  • 问题是在哪种情况下我应该更喜欢一种方法而不是另一种方法。这两种认证方式有各自的优缺点吗?作为开发人员,通过使用 query string parameters方法我可以预先签署使最终用户能够临时访问 Amazon S3 的 URL通过在 Web 浏览器中输入预签名 URL 来获取资源。我可以使用 HTTP Authorization方法来实现同样的事情?如果是这样,哪种方法更好用,它们各自的局限性是什么?

    最佳答案

    Can I use HTTP Authorization method to achieve the same thing?



    有时。关键区别在于,作为开发人员,您并不总是对用户代理有足够的控制权来注入(inject) header 。最明显的例子是一个简单的 GET Web 浏览器响应用户单击链接而发起的请求。在这种情况下,您无法注入(inject) Authorization:浏览器发送的 header ...所以您可以做的就是预先签署 URL。

    重要的是,签名 URL 中没有被认为是敏感的信息,因此没有特别强烈的动机使用 header 而不是签名 URL。您的 AWS 访问 key ID 不是 secret ,并且您的 AWS secret 不能在计算可行的时间范围内从其他元素和签名派生,尤其是在您使用签名版本 4 时,您应该这样做。 Signature Version 2 并未在旧地区正式弃用,但较新的 S3 从未支持它并且可能永远不会支持。

    当您控制用户代理时,例如在后端服务器代码中,添加 header 可能更可取,因为您不需要对已有的 URL 字符串进行任何操作。

    关于authentication - HTTP 授权 header 和查询字符串参数之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30270319/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com