2

我目前正在我的本地主机上设计一个社交网络,其中还涉及一个论坛方面。用户可以在网站上做的三件事让我有些担心。

  1. 通过站点上任何页面的标题登录到他们的个人资料。
  2. 在他们的墙上张贴包含外部网站链接的内容。
  3. 在论坛上发布各种不同的内容,包括指向外部站点的链接以及外部站点上的图像。

由于#1,我将整个网站设为 https。因此,无论用户在站点的哪个位置,他们都可以登录,并且他们的整个会话都将被加密。这个功能很好用,但我害怕Mixed Content Warnings

现在,我在考虑是否让整个网站安全 b/c 如果我保持这种方式,是否会为每个链接到外部站点或来自外部站点的图像的页面显示混合内容警告?不幸的是,我从未见过此警告 b/c 我使用的所有浏览器似乎都没有向我显示。我搜索了某种显示此警告的浏览器列表,但我找不到有限的列表。所以这是尴尬的 b/c 我很担心并试图避免我从未见过的事情。但我想到了一种解决方案。

我目前关于如何解决图像问题的想法是在用户发布论坛时从用户那里获取图像并将它们写入我的磁盘,并提供新的图像链接。我很确定这正是谷歌图像在显示来自 http 站点的数百万张图像时保持 https 的方式。我认为他们将它们全部写入自己的服务器。例子:

https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcTj_52I-TSX79mQFJRLTDNGahtGbsh_BpYDp0H3hbzJDWK2qxPZ

所以我想我已经找到了解决图像问题的方法,但是外部链接呢?因为当用户在他们的墙上发布一个指向https://stackoverflow.com/的链接时,我会阅读该帖子并用一个锚标签将其包围,所以从技术上讲,对于浏览器来说,这不是不安全的内容吗?这不会发出警告吗?

我怎样才能解决这个问题而不惹恼我的用户?你对我的形象问题有更好的解决方案吗?感谢大家阅读我的困惑。

4

1 回答 1

0

链接一般都可以。仅通过将它们包含在页面中,它们不会生成任何警告。他们可以在单击时执行:当页面从 HTTPS 导航到 HTTP 时,某些浏览器会显示警告。但在这种情况下,默认设置是“不再显示此警告”,因此几乎每个人都会在浏览的第一天点击它,并且永远不会再看到它。

检测用户提供的图像链接,在发布时间获取它们然后重新提供它们会起作用,但是要做的工作很多(我认为我没有看到其他论坛这样做)并且有一些安全警告 - 例如,您希望提供来自单独域的图像以避免 XSS 内容嗅探问题(如 Google 所做的gstatic.com),并设置限制以避免巨大的图像导致拒绝服务。

剩下的情况是 iframe 嵌入,一些用户可能希望为例如 YouTube 视频发布。在这里,您可以将 iframe 源限制为支持 HTTPS 的已知良好服务。

于 2013-04-11T09:11:48.003 回答