Как определить небезопасный контент в Chrome DevTools или Firefox?
На моей веб-странице иногда (редко) появляется значок предупреждения "есть небезопасные ресурсы" (желтый замок), как на скриншоте ниже. Однако это случается редко, и теперь я поймал другого, я не хочу пропустить его снова, поэтому я не могу рисковать потерей страницы.
Страница находится по адресу: https://eksisozluk.com/sedat-kapanoglu-ve-40-kisiye-hapis-talep-edilmesi--3960310. Вы, вероятно, не увидите предупреждение (если только это не Firefox), потому что я не делал это в моих последовательных попытках Chrome, и я вошел в систему, когда я получил ошибку. Итак, давайте предположим, что вы и я больше никогда не увидим этот значок предупреждения в Chrome.
Devtools не был открыт, когда я пользовался сайтом, поэтому вкладка "Сеть" пуста. Эта часть не будет работать.
"Ресурсы" отображают все записи 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 говорит, что по той же причине, что и 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>
для твиттера, <A href>
с и два <TD title="http://...">
s, что Mvc-Mini-Profiler вставлен. Никто из них, конечно, не оправдывает предупреждение. Вот полный вывод: http://pastebin.com/kgV8XHgN
Так что это выглядит действительно интересно. В DOM нет ни одного элемента, содержащего ссылку "HTTP", однако Chrome предупреждает о "небезопасном" содержимом. Я очень обеспокоен этим.
На странице НЕТ фреймов. ($("iframe")
возвращается []
)
РЕДАКТИРОВАТЬ: ЧЕРТ Я потерял страницу:( (перешел на ссылку и кнопка "Назад" превратилась в значок SSL в зеленый цвет). Я знал, что это продлится недолго. Но я все равно ценю любую помощь, так как это был не первый раз, когда я видел эта проблема.
5 ответов
Только что возникла эта проблема - если вы проверите консоль Javascript в Chrome, она теперь скажет вам, в чем проблема.
У меня вчера была та же проблема, и я нашел http://www.whynopadlock.com/
Он показывает, какие элементы не являются безопасными, а также проверяет цепочки сертификатов.
Кстати, если ваш сайт может быть загружен как http, так и https, тогда опустите http: из внешних URL-адресов.
Не:
src="http://external.dom/external.js" or "https://external.dom/external.js"
Просто:
src="//external.dom/external.js"
Затем браузер будет использовать http или https в зависимости от того, как загружается страница.
Я только что провел час с подобной проблемой, я получил зеленую блокировку ssl в Chrome и IE, но не в Firefox (только после перезагрузки страницы).
Прежде всего: для устранения проблем с SSL плагин httpfox кажется лучше, чем вкладка сети firebug. Firebug показал все источники как https, но, посмотрев на httpfox, я быстро нашел виновника: Google Analytics загружал пиксель отслеживания ___utm.gif через http. Этот пиксель отслеживания пришел с предыдущей страницы, где я отслеживал событие Google Analytics, которое было прикреплено к нажатию кнопки.
Это похоже на ошибку в Firefox: при отслеживании события GA со страницы http на страницу https (например, нажатие кнопки "Продолжить") FF загрузит пиксель отслеживания через http на странице https, вызывая ошибку.
Я удалил событие с кнопки, и FF перестала жаловаться на частично зашифрованное соединение.
Скорее всего, ресурс AJAX использовался с http:// URL... вам, скорее всего, понадобится сетевая панель или консоль, чтобы это проверить.
Встроенные инструменты разработчика Firefox имеют их.
Быстрое решение - добавить target="_blank"
в каждом <a>
элемент. Откроется ссылка в новом окне. Работает на всех браузерах.