如何识别Chrome DevTools或Firefox中的不安全内容?

时间:2013-08-07 17:20:38

标签: google-chrome firefox ssl google-chrome-devtools firefox-developer-tools

我的网页有时(很少)显示“有一些不安全的资源”警告图标(黄色锁定),如下面的屏幕截图所示。然而,这很少发生,现在我又抓到了另一个,我不想再错过它,所以我不能冒失去页面的风险。

Insecure content warning

该网页位于以下网址:https://eksisozluk.com/sedat-kapanoglu-ve-40-kisiye-hapis-talep-edilmesi--3960310。您可能不会看到警告(除非它是Firefox),因为我没有在Chrome上连续尝试,当我收到错误时我登录了。因此,我们假设您和我再也不会在Chrome上看到该警告图标。

当我使用网站时,Devtools未打开,因此“网络”标签为空。那部分不起作用。

“Resources”将所有JS和CSS条目显示为https,http中没有单一资源。

该页面加载了jQuery,因此我尝试了查询$('*[href^="http:"]')$('*[src^="http:"]')无济于事。该页面包含一些外部http链接(不是资源,普通a href),但不会触发警报。

我正在使用卡巴斯基反病毒软件,它使用代理来扫描传入/传出流量。这可能会造成一些麻烦,尽管到目前为止我还没有与其他网站有过任何问题。

我尝试了“查看页面源”并搜索了http资源,但只有带有http资源链接的标记是:

<meta name="twitter:image" content="http://eksisozluk.com/content/img/ilogo120.png" />
当图标为绿色时,页面中实际存在

。所以这不是原因。

是否有办法直接查看Chrome中的“不安全内容”?

当我在Firefox中查看该页面时,它表示“部分加密”,但它没有显示未加密的内容。 “媒体”标签中的所有项目均以“https://”开头。

实际上现在我能够在Firefox上不断重现这个问题。我查看了网络选项卡,“没有”显示为http://但Firefox告诉我“部分加密”。我不确定Firefox是否因为谷歌的原因(因为Firefox是一致的并且坚持不懈)这么说,但我提供这两种情况,以防它们属于同一个根本原因。

我终于在Chrome控制台中编写了这段代码,找到了罪魁祸首:

$("*").each(function (index, elem) {
  var attrs = elem.attributes;
  for(var n = 0; n < attrs.length; n++) {    
    var attr = attrs[n];
    if(attr.nodeValue.indexOf("http://") >= 0) {
      console.log("FOUND: <" + elem.nodeName + " " + attr.nodeName + "='" + attr.nodeValue + "'>");
      console.log($(elem));
    }
  }
});

输出显示没什么有趣的东西。只有<META content>用于推特参考,<A href>和两个<TD title="http://...">已插入Mvc-Mini-Profiler。当然,没有人能够证明这一点。以下是完整输出:http://pastebin.com/kgV8XHgN

所以这看起来非常有趣。 DOM中没有一个元素包含“HTTP”链接,但Chrome警告“不安全”内容。我很烦恼。

页面上没有iframe。 ($("iframe")返回[]

编辑:DAMN我丢失了页面:((导航到链接,后退按钮变为SSL图标变为绿色)。我知道它不会持续很长时间。但我仍然感谢任何帮助,因为它不是第一个我看到那个问题了。

5 个答案:

答案 0 :(得分:14)

刚出现此问题 - 如果您在Chrome中查看Javascript控制台,它现在会告诉您问题所在。

答案 1 :(得分:4)

昨天我遇到了同样的问题,发现了http://www.whynopadlock.com/

它显示哪些元素不安全,并且还验证证书链。

顺便说一句,如果您的网站既可以加载http也可以加载https,那么可以从外部网址中省略http:。

src="http://external.dom/external.js" or "https://external.dom/external.js"

只是:

src="//external.dom/external.js"

然后浏览器将使用http或https,具体取决于页面加载的内容

答案 2 :(得分:2)

我只花了一个小时遇到类似的问题,我在Chrome和IE中获得了绿色ssl锁定,但在Firefox中却没有(仅在页面重新加载后)。

首先:要调试SSL问题,httpfox插件似乎比firebug的网络选项卡更好。 Firebug将所有来源都显示为https,但是看看httpfox,我很快找到了罪魁祸首:Google Analytics正在通过http加载___ utm.gif跟踪像素。此跟踪像素来自上一页,我在其中跟踪附加按钮点击的Google Analytics事件。

这似乎是Firefox中的一个错误:当从HTTP页面跟踪GA事件到https页面时(例如,单击继续按钮),FF将通过https页面上的http加载跟踪像素,从而导致错误。 / p>

我从按钮中删除了该事件,FF停止抱怨部分加密的连接。

答案 3 :(得分:0)

听起来很可能是一个AJAX资源与http:// URL一起使用......你很可能需要网络面板或控制台来检查它。

Firefox的内置开发者工具拥有它们。

答案 4 :(得分:0)

快速解决方案是在每个target="_blank"元素中添加<a>。它将在新窗口中打开链接。适用于所有浏览器。