【问题标题】:How do I figure out which parts of a web page are encrypted and which aren't?如何确定网页的哪些部分已加密,哪些未加密?
【发布时间】:2008-11-20 14:57:14
【问题描述】:

我正在使用一个尚未完全设置好的网络服务器,我正在尝试找出网页的哪些部分是加密发送的,哪些不是。 Firefox 告诉我页面的某些部分已加密,但我想知道具体是什么加密。

【问题讨论】:

标签: ssl


【解决方案1】:

问题并不总是页面中的错误链接。

如果您使用 https:// 链接到外部站点上的 iresources,然后外部站点将自己的 HTTP 重定向到非 SSL 页面,这将打破您页面上的 SSL 锁定。

但是,当您在媒体选项卡中查看来源或信息时,您不会看到任何 http://,因为您的页面仅正确使用了 https:// 链接。

如上所述,firebug Net 选项卡将显示此问题和任何其他问题。请按以下步骤操作:

  1. 如果您还没有 Firebug 插件,请将其安装到 firefox 中,并在出现提示时重新启动 FF。
  2. 打开 Firebug(F12 或搜索框右侧的小昆虫菜单)。
  3. 在 firebug 中,选择“Net”选项卡。点击“启用”(文本链接)将其打开
  4. 按 Ctrl-Shift-R(或 OSX 中的 Command-shift-R)在不使用缓存的情况下刷新问题页面。您将看到 Firefox 中的“网络”选项卡填满了每个 HTTP 请求的列表。
  5. 页面加载完成后,将鼠标悬停在 net 选项卡中显示的每个 HTTP 请求的左侧列上。将出现一个工具提示,向您显示实际使用的链接。很容易发现任何 http:// 而不是 https://。
  6. 如果您的任何链接导致 HTTP 重定向,您将在 HTTP 状态列中看到“301 Moved Permanently”,并且另一个 HTTP 请求将出现在新位置的下方。如果问题是由外部重定向引起的,那么证据就在那里 - 新位置的请求将是 HTTP。
  7. 如果您的问题是由于来自外部站点的重定向,您将看到将它们指向新位置的请求的“301 永久移动”状态代码。
  8. 使用左侧的加号扩展这 301 个重定位中的任何一个,并查看响应标头以了解发生了什么。 Location: 标头将告诉您外部服务器请求浏览器使用的新位置。
  9. 在重定向中记下此信息,然后向相关外部站点发送一封友好的礼貌电子邮件,并要求他们为您删除 https:// -> http:// 重定向。解释它是如何破坏您网站上的 SSL 的,如果可能的话,最好包含一个指向被破坏页面的链接,以便他们自己看到错误。 (这将比您告诉他们错误更快地采取行动)。

这是 Firebug 针对外部重定向问题的示例输出。在我的例子中,我发现一个调用 https:// 数据提要的页面正在将提要由外部服务器重写为 http://。

我已将我的网站重命名为“mysite.example.com”,将外部网站重命名为“external.example.com”,但其他地方保持原样。请求标头显示在响应标头下方的底部。请注意,我正在从我的网站请求 https:// 链接,但被重定向到 http:// 链接,这就是破坏我的 SSL 锁定的原因:

Response Headers  
Server  nginx/0.8.54
Date    Fri, 07 Oct 2011 17:35:16 GMT
Content-Type    text/html
Content-Length  185
Connection  keep-alive
Location    http://external.example.com/embed/?key=t6Qu2&width=940&height=300&interval=week&baseAtZero=false

Request Headers
Host    external.example.com
User-Agent  Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
Accept  */*
Accept-Language en-gb,en;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection  keep-alive
Referer https://mysite.example.com/real-time-data
Cookie  JSESSIONID=B33FF1C1F1B732E7F05A547A9CB76ED3
Pragma  no-cache
Cache-Control   no-cache

因此,需要注意的重要一点是,在响应标头(上图)中,您会看到一个 Location: 以 http:// 开头,而不是 https://。您的浏览器在确定锁定是否有效时会考虑到这一点,并仅报告部分加密的内容! (这实际上是一个重要的浏览器安全功能,可以提醒用户注意潜在的 XSRF 和/或网络钓鱼攻击)。

这种情况下的解决方案不是您可以在您的网站上解决的问题 - 您必须要求外部网站停止重定向到 http。通常这是为了方便而在他们这边完成的,而没有意识到这种后果,而一封写得好、礼貌的电子邮件可以解决这个问题。

【讨论】:

  • 有关如何使用 Firebug 进行故障排除的重要信息。谢谢!
【解决方案2】:

对于页面中加载的每个元素,检查它们的方案:

  • 它以 HTTPS 开头:它是加密的。
  • 以 HTTP 开头:未加密。

(您可以通过右键单击页面并选择“查看页面信息”然后选择“媒体”选项卡来查看Firefox上相对完整的列表。

编辑:FF 仅显示图像和多媒体元素。它们也是必须检查的 javascript 文件和 CSS 文件。 Firebug 是一个很好的工具,可以找到您需要的东西。

【讨论】:

  • 这似乎给我一个图像列表,但是文本元素呢?在我的也被称为“查看页面信息”。
  • 文本元素是页面本身的一部分。它们不是单独加载的。
【解决方案3】:

某些元素可能没有列出 http 或 https,在这种情况下,无论用于页面的哪个都将用于这些项目,即如果页面请求在 SSL 下,则这些图像将被加密,而如果页面请求不在SSL 那么这些将是未加密的。 Internet Explorer 中的 Fiddler 也可能有助于跟踪其中的一些信息。

【讨论】:

  • 好建议! Fiddler 作为代理工作,Firefox 也可以通过它进行引导......这只是一个手动配置步骤......
【解决方案4】:

嗅探数据包 - 这会很快告诉你。 WireShark 是完成此类任务的好程序。

【讨论】:

  • 我必须先得到老板的许可才能嗅探数据包。我应该能够从更高的层次做到这一点。但好建议!
【解决方案5】:

萤火虫可以做到这一点吗?

编辑:看起来萤火虫也会使用“网络”面板执行此操作,它还会为您提供一些其他有趣的统计数据。

【讨论】:

    【解决方案6】:

    我发现在 https 连接上检测 http 链接的最佳工具是 Fiddler。它也适用于许多其他故障排除工作。

    【讨论】:

      【解决方案7】:

      我为此使用 FF 插件 HTTPFox。

      https://addons.mozilla.org/en-us/firefox/addon/httpfox/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-22
        • 1970-01-01
        • 2014-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-06
        • 1970-01-01
        相关资源
        最近更新 更多