100%HTTPS站点的优缺点是什么?

时间:2010-10-29 19:17:04

标签: security https

首先,让我承认我对HTTPS的了解非常简陋。我不太了解会话安全性,加密或这些事情应该如何完成。

我所知道的是网络安全很重要; XSS,CSRF和数据库注入的恐怖故事一再出现。我知道对这种攻击采取预防措施比反应措施要好。

但这个问题的动机来自不同的观点。我在经常接受用户付款的网站上工作。显然,付款是通过安全通道(HTTPS)发送的。我主要研究网站的CSS,HTML和JavaScript。我被告知的是,有必要复制CSS,JavaScript和图像文件,然后才能通过HTTPS调用它们。假设我有以下文件:

  • CSS / global.css中
  • JS​​ / global.js
  • 图像/
    • logo.png
    • bg.png

我理解它的方式,这些文件需要复制才能“添加”到HTTPS。因此,文件可以是安全性(HTTPS),也可以不是。

如果这是真的,那么这是一个主要的障碍。即使是最小的站点,重复文件也是一个很大的痛苦,然后每次进行CSS或JS更改时都必须维护它们。显然,通过将所有移动到HTTPS中可以缓解这种情况。

所以我想知道的是,完全落后于HTTPS的网站的优缺点是什么?它是否会导致明显的开销?将整个网站置于加密状态是否愚蠢?用户在整个访问期间在浏览器中看到“安全”通知会更安全吗?最后但并非最不重要的是,它真的是make for a more secure site吗? HTTPS 可以防范什么?

7 个答案:

答案 0 :(得分:11)

您可以通过HTTPS提供与通过HTTP相同的内容(只需将其指向同一文档根目录)。

可能是主要或次要的缺点,取决于:

  1. 通过HTTPS提供内容比通过HTTP提供内容要慢。
  2. 由知名机构签署的证书可能很昂贵
  3. 如果您没有受信任机构签署的证书(例如,您自己签名),访问者将收到警告
  4. 这些是非常基本的,但只需要注意几点。另外,就个人而言,我觉得整个网站都是HTTPS更好,如果它与财务相关,显然,但就一般浏览而言,不,我不在乎。

答案 1 :(得分:6)

明显的开销?是的,但这些日子越来越少,因为客户服务器要快得多。

您无需复制所有内容,但确实需要通过HTTPS访问这些文件。您的HTTPS和HTTP服务可以使用相同的文档根目录。

将整个网站置于加密状态是否愚蠢?通常没有。

用户会觉得更安全吗?可能。

它真的能够建立一个更安全的网站吗?仅在处理客户端和服务器之间的通信通道时。其他一切仍然可以争夺。

答案 2 :(得分:4)

你被误导了。假设您已将http和https映射设置为指向服务器上的同一物理网站,则无需复制css,js和image文件。唯一重要的是当您正在查看的页面也在https下时,这些文件会被https引用。这将防止可怕的安全消息,该消息表明页面上的某些对象不受保护。

对于您在http(不安全)下运行网站的每个其他网页,您可以在相同位置引用这些相同的文件,但使用http地址。

要回答您的其他问题,将整个网站置于https下确实会有性能损失。服务器必须努力加密它通过网络发送的所有内容。然后,一些不那么老的浏览器默认不会将https内容缓存到磁盘,这当然会导致服务器上的负载更重。

因为我希望我的网站尽可能地响应,所以我总是选择对我选择进行SSL加密的网站的哪些部分。在大多数典型的电子商务网站中,唯一需要SSL加密的页面是登录,注册和结帐页面。

答案 3 :(得分:3)

没有整个网站落后于SSL的传统原因是处理时间。客户端和服务器使用SSL确实需要更多工作。但是,与现代处理器相比,这种开销相当小。

如果您正在运行一个非常大的网站,如果要对所有内容进行加密,则可能需要稍微加快扩展速度。

您还需要购买证书,或使用可能不被您的用户信任的自签名证书。

您还需要专用的IP地址。如果您使用的是共享主机系统,则需要拥有一个可以专用于在您的网站上使用SSL的IP。

但是,如果你能负担得起证书和私人IP,并且不介意需要稍微快一点的服务器,那么在整个网站上使用SSL是一个好主意。

随着SSL减轻的攻击次数,我会说这样做。

答案 4 :(得分:3)

您不需要这些文件的多个副本才能使用HTTP。如果已配置主机设置,您可能需要拥有这些文件的2个副本,以便您拥有单独的https目录。所以回答你的问题 - HTTP不需要重复的文件,但取决于网络托管配置 - 它们可能是。

关于https vs http的优点和缺点,已经有一些帖子解决了这个问题。 HTTP vs HTTPS performance HTTPS vs HTTP speed comparison

HTTP仅加密客户端计算机和服务器之间的数据。它没有软件漏洞或远程javascript包含的问题。 HTTP不会使您的应用程序更好 - 它只能帮助保护用户和您的应用程序之间的数据。您需要确保您的应用没有安全漏洞,请经常过滤所有数据,SQL并经常查看安全日志。

但是,如果您只对网站的前端部分负责,我不会担心它,但会引起主要开发人员对后端安全性的担忧。

答案 5 :(得分:1)

其中一个问题是https流量可能被阻止,例如在Apple计算机上,如果您设置家长控制阻止https流量,因为它无法读取加密内容,您可以在此处阅读:

http://support.apple.com/kb/ht2900

  

https note:适用于使用SSL的网站   加密(URL通常会开始   用https),互联网内容   过滤器无法检查   加密的页面内容。对于   这个原因,加密的网站必须   明确允许使用Always   允许列表。加密的网站   不在“始终允许”列表中   被自动互联网阻止   内容过滤器。

答案 6 :(得分:1)

您网站上有更多https的重要“专业人士”如下:

通过未加密的WiFi连接的用户,如在机场,可以用https提供密码,但如果该网站在密码页面后切换回http,会话cookie就会暴露出来,可以立即使用窃听者

请参阅此文http://steve.grc.com/2010/10/28/why-firesheeps-time-has-come/#comment-2666