我正在管理一家商店,该商店在注册/登录/帐户/结帐页面上强制使用 HTTP,但仅此而已,我一直在试图说服人们在所有东西上强制使用 HTTP。
我知道建议在任何地方使用 HTTPS,但不知道为什么。
是否有充分的理由将网站的一部分保留在 HTTP 上?
我正在管理一家商店,该商店在注册/登录/帐户/结帐页面上强制使用 HTTP,但仅此而已,我一直在试图说服人们在所有东西上强制使用 HTTP。
我知道建议在任何地方使用 HTTPS,但不知道为什么。
是否有充分的理由将网站的一部分保留在 HTTP 上?
一个很好的理由是页面性能对销售有很大的影响(有很多已发表的研究),而 SSL 对性能有很大的影响 - 特别是如果它没有正确调整。
但是运行混合的 SSL 和非 SSL 对粗心的人来说充满了陷阱......
确切地说,您放入 SSL 的哪些页面对安全性也有很大影响 - 假设您使用 HTTP 发送登录表单,POST 目标是 HTTPS - 简单的分析表明这是安全的 - 但实际上 MITM 可以修改登录页面将帖子发送到其他地方或注入一些 ajax 以将请求分叉到不同的位置。
进一步使用混合 HTTP 和 HTTPS,您会遇到安全传输会话的问题 - 用户在 SSL 站点外填充其与会话链接的购物篮,然后在 SSL 站点内付款 - 您如何防止转换中的会话固定问题?
因此,如果您在 HTTP 方面拥有真正的专业技能,我只建议您运行一个混合站点 - 既然您在这里提出这个问题,那就意味着您没有。
一个折中的解决方案是使用 SPDY。SPDY 需要 SSL,但可以使大多数站点(尤其是那些没有进行大量性能优化的站点)更快。目前 MSIE 不支持它 - 并且(上次我检查过)默认情况下在 Firefox 中未启用。但它很可能很快构成 HTTP/2.0 的很大一部分。
通过 HTTPS 使用(良好的)CDN 还可以减轻 SSL 的大部分性能影响。
确实没有必要在整个网站上使用 HTTPS。使用 HTTPS 将导致服务器消耗更多资源,因为它必须做额外的工作来加密和解密连接,更不用说协商算法中的额外步骤/握手等。
如果您的网站流量很大,则性能影响可能会很大。
这也意味着在 HTTP 上使用普通的响应时间很慢。
您应该只在您真正需要安全的站点部分真正使用 HTTPS,例如当用户向您的站点发送重要信息、填写表单、登录、站点的私有部分等时。
另一个问题可能是您使用来自非安全 URL 的资源,可能是托管在其他地方的图像/脚本。如果它们无法通过 HTTPS 访问,那么您的访问者将收到有关不安全连接的警告。
您还需要意识到 HTTPS 数据/页面几乎不会被缓存。这也会增加性能损失。