【问题标题】:How secure is a HTTP GET when the data is URL Encoded?当数据是 URL 编码时,HTTP GET 的安全性如何?
【发布时间】:2010-11-03 18:12:37
【问题描述】:

如果数据是 URL 编码的,通过 HTTP GET 发送登录凭据是否足够安全?

【问题讨论】:

  • 可用性得分很高,但完整性和保密性得分为 0。 en.wikipedia.org/wiki/Information_security
  • 我认为您可能对 GET 的用途有错误的认识。
  • GET 应该是幂等的,所以你不应该通过它们发送这样的东西并导致操作(即登录)发生。

标签: security httpwebrequest get xmlhttprequest url-encoding


【解决方案1】:

一点也不。 URL 编码很容易可逆。您应该加密传输层(即使用 HTTPS)

【讨论】:

  • 除了 HTTPS,您还应该使用 POST,这样凭据就不会存储在浏览器历史记录或收藏夹中。
  • 是的,请遵循 Matthew 的建议,不要在 URL 中添加您不希望其他人看到的任何内容!
【解决方案2】:

URLEncoding 用于编码/传输,而不是安全性。

【讨论】:

    【解决方案3】:

    一点也不安全。

    【讨论】:

      【解决方案4】:

      请阅读purpose of URL encoding

      URL 规范(RFC 1738,2094 年 12 月)提出了一个问题,因为它将 URL 中允许的字符的使用限制为 US-ASCII 字符集的有限子集。

      另一方面,HTML 允许在文档中使用 ISO-8859-1 (ISO-Latin) 字符集的整个范围 - 而 HTML4 扩展了允许范围以包括所有 Unicode 字符集.对于非 ISO-8859-1 字符(Unicode 集中 FF 十六进制/255 十进制以上的字符),它们不能在 URL 中使用,因为没有安全的方法来指定 URL 内容中的字符集信息然而 [RFC2396.]

      应该在 HTML 文档中的任何地方对 URL 进行编码,其中引用 URL 以导入对象(A、APPLET、AREA、BASE、BGSOUND、BODY、EMBED、FORM、FRAME、IFRAME、ILAYER、IMG、ISINDEX、INPUT、 LAYER、LINK、OBJECT、SCRIPT、SOUND、TABLE、TD、TH 和 TR 元素。)

      安全不是这里的重点。如前所述,应在需要时使用 HTTPS。

      【讨论】:

        【解决方案5】:

        否 - URL 编码旨在确保您尝试通过 GET 请求发送的所有字符都可以实际到达另一端。

        它实际上被设计为易于编码和解码,以便为传输准备数据,而不是为了安全。

        【讨论】:

          【解决方案6】:

          URL 编码不是任何类型的加密,它只是准备要通过网络发送的字符串。

          如果您的数据是敏感数据,那么 GET 应该是完全没有问题的。这是什么原因?

          1. 很明显,每个浏览 URL 栏的人都会看到数据
          2. 数据将保留在它通过的每个代理日志中
          3. 如果用户离开该站点,下一个站点的日志/网络统计信息 (REFERER) 中会记录该 URL。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-03-14
            • 2016-02-08
            • 2010-11-03
            • 1970-01-01
            • 2021-04-10
            相关资源
            最近更新 更多