3

我的网页有时(很少)显示“有一些不安全的资源”警告图标(黄色锁),如下面的截图所示。然而,这种情况很少发生,现在我又发现了一个,我不想再错过它,所以我不能冒险丢掉页面。如何识别Chrome DevTools或Firefox中的不安全内容?

Insecure content warning

的页面是在URL: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's),但不会触发警报。

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

我试过“查看页面源代码”,并寻找它的HTTP资源,但只能用HTTP资源的链接标签是:

<meta name="twitter:image" content="http://eksisozluk.com/content/img/ilogo120.png" /> 

实际上在页面存在时,图标为绿色了。所以这不可能是原因。

无法直接查看Chrome中的“不安全内容”吗?

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

其实现在我可以在Firefox上不断重现问题。我看着网络标签,“没有”显示为http://,但Firefox告诉我“部分加密”。我不确定火狐是否说出于Google的原因(因为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>用于twitter参考,<A href> s和两个<TD title="http://...">是Mvc-Mini-Profiler插入的。当然,他们没有任何理由证明警告。这里是完整的输出:http://pastebin.com/kgV8XHgN

所以这看起来很有趣。 DOM中没有包含“HTTP”链接的单个元素,但Chrome对“不安全”内容提出警告。我很困扰它。

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

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

+1

您确定没有涉及浏览器扩展吗?你是否能够在另一台机器/设备上重现它? –

+0

Chrome已经可以干预(我不知道),但Firefox有Firebug,UA Switcher,PageSpeed和YSlow。除Firebug之外,我从Firefox中删除了所有内容,但仍然显示“部分加密”,但没有显示“http://”资源。 –

+0

其他设备/机器如果能够重现它?在Chrome中,还有一个工具可以帮助您进行调试。打开Chrome隐身窗口并关闭所有其他Chrome窗口。在隐身窗口中打开两个选项卡:一个包含要调试的页面,另一个包含chrome:// net-internals /。您将在网络内部选项卡中获得的内容是Chrome中发生的所有网络通信的详细调试。 –

回答

2

我只花了一个小时,类似的问题,我得到了绿色的SSL锁在Chrome和IE,但不能在Firefox(页面重新加载后,才)。

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

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

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

+0

我们正在使用GA,但我不确定是这种情况。但这很好。我不知道HttpFox。 –

1

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

它显示了哪些元素是不是安全的,并且它也验证证书链。

顺便说一句,如果您的网站可以同时加载http和https,那么省略http:from external urls。

不:

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

刚:

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

然后,浏览器将使用HTTP或HTTPS这取决于在页面加载为

+0

为whynopadlock.com +1。我有一个不安全的http ref被埋在一个CSS文件中,它立即被发现。 – Obfuskater

9

只是有这个问题 - 如果你检查Chrome中的Javascript控制台现在会告诉你问题出在哪里。

+0

适合我,谢谢 – Antoine

0

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

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

0

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

相关问题