【问题标题】:POST data encryption - Is HTTPS enough?POST 数据加密 - HTTPS 够用吗?
【发布时间】:2011-03-15 09:51:03
【问题描述】:

考虑一个场景,用户身份验证(用户名和密码)由用户在页面的表单元素中输入,然后提交。 POST 数据通过 HTTPS 发送到新页面(php 代码将在其中检查凭据)。现在,如果黑客坐在网络中,并说可以访问所有流量,那么在这种情况下应用层安全性 (HTTPS) 是否足够?我的意思是,是否有足够的 URL 加密或是否需要传输层安全性?

【问题讨论】:

    标签: php post https security ssl


    【解决方案1】:

    是的,所有内容(包括 URL)都通过加密通道。恶棍唯一会发现的是您正在连接的服务器的 IP 地址,并且您正在使用 HTTPS。

    好吧,如果他也在监视您的 DNS 请求,他可能还知道 IP 地址的域名。但仅此而已,路径、查询参数和其他所有内容都是加密的。

    【讨论】:

    • 嗯,这几乎回答了我的问题。但是有没有办法(作为网页设计师)强制用户在访问我的网站时只使用 HTTPS?
    • 让 HTTP 站点上的每个页面都重定向到相同的 URL,但使用 https 协议。
    • 这是有道理的。另外,我想问一下 HTTPS 是否会进行某种 URL 字符串加密,因为 POST 数据几乎会将信息附加到 URL。 (防止说喜欢的人忽略您的 URL 并获取您的信息)。
    • 那是在设置网络服务器的人手中。如果您只控制网站本身(如 - 只控制 php/C#/java/whatever 代码),那么您无能为力。我想您可以检测请求是否来自非 HTTPS,然后显示 403 或其他内容,但这是最多的。您不能通过代码强制执行 HTTPS。尤其是因为无论如何您都需要正确的网站证书。
    • 您可以在网络服务器的设置或 .htaccess 中强制执行 https - 无需重写页面中的每个链接以使用 https。另外:post 数据不会在 url 中发送,获取数据是。
    【解决方案2】:

    是的。在 HTTPS 中,只有握手是未加密的,但即使是 HTTP GET/POST 查询也是加密的。

    但是不可能隐藏到您正在连接的服务器,因为他可以看到您的数据包,他可以看到您的数据包所在的 IP 地址。如果您也想隐藏它,您可以使用代理(尽管黑客会知道您正在发送到代理,但不知道您的数据包随后会去哪里)。

    【讨论】:

      【解决方案3】:

      “如果”客户端是安全的,HTTPS 就足够了。否则有人可以安装自定义证书并扮演中间人。

      作为 Web 开发人员,除了禁止 HTTP 请求外,无能为力。这可以通过 Apache 中的 mod_rewrite 来完成。

      【讨论】:

      • 如果我错了,请纠正我。 HTTPS 证书是端到端身份验证的实体吗?我假设入侵者只能访问网络上的流量。我猜想修改证书,你需要先侵入源计算机。
      • 是的,它必须由受信任的实体(例如 VeriSign)签发/签名。如果有人可以访问客户端,则可以安装一个新的实体来验证中间人证书是否正确。
      【解决方案4】:

      足够了,因为如果它可以访问您的所有流量,无论您使用什么加密协议,他都可以在中间使用 man 来进行两种加密协议。

      【讨论】:

      • 他将如何 MITM HTTPS 连接?
      • 他必须破解非对称加密。
      • HTTPS 旨在防止中间人。在那里做任何明智的事情是相当困难的(尽管已经证明了至少一种可能的攻击,但可用性有限)。
      • 这是对“can”的严格限制:)
      • 在 HTTPS 中不会有某种端点身份验证会击败 MITM 吗?
      猜你喜欢
      • 2018-01-11
      • 2013-09-12
      • 2011-04-24
      • 2014-04-01
      • 2012-04-20
      • 1970-01-01
      • 2015-06-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多