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"。它會在新窗口中打開鏈接。在所有瀏覽器上工作。

相關問題