Я работаю над веб-сервером, который я не полностью настроил, и я пытаюсь выяснить, какие части веб-страницы отправляются зашифрованными, а какие нет. Firefox сообщает мне, что части страницы зашифрованы, но я хочу знать, что именно зашифровано.
Как определить, какие части веб-страницы зашифрованы, а какие нет?
Ответ 1
Для каждого элемента, загруженного на страницу, проверьте их схему:
- он начинается с HTTPS: он зашифрован.
- он начинается с HTTP: он не зашифрован.
(вы можете увидеть относительно полный список в firefox, щелкнув правой кнопкой мыши на странице и выбрав "View Page Info", затем вкладку "medias".
EDIT: FF показывает только изображения и мультимедийные элементы. Они также являются файлами javascript и CSS, которые необходимо проверить. И Firebug - хороший инструмент для поиска того, что вам нужно.
Ответ 2
Проблема не всегда является плохими ссылками на вашей странице.
Если вы ссылаетесь на ресурсы ires на внешнем сайте с помощью https://, а затем внешний сайт выполняет собственный HTTP-переадресацию на страницы без SSL, что нарушит блокировку SSL на вашей странице.
НО, когда вы просматриваете источник или информацию на вкладке media, вы не увидите никаких http://, потому что ваша страница правильно использует только ссылки https://.
Как указано выше, вкладка Firebug Net покажет это и любые другие проблемы. Выполните следующие действия:
- Установите дополнение Firebug в firefox, если у вас его еще нет, и при появлении запроса перезапустите FF.
- Откройте Firebug (F12 или небольшое меню насекомых справа от окна поиска).
- В firebug выберите вкладку "Net". Нажмите "Включить" (текстовая ссылка), чтобы включить его.
- Обновите свою страницу проблем без использования кеша, нажав Ctrl-Shift-R (или Command-shift-R в OSX). Вы увидите вкладку "Net" в firefox, заполненную списком каждого сделанного HTTP-запроса.
- После того, как страница будет загружена, наведите указатель мыши на левую колонку каждого HTTP-запроса, показанного на вкладке net. Появится всплывающая подсказка с указанием фактической ссылки. будет легко обнаружить любые http://вместо https://.
- Если какая-либо из ваших ссылок привела к перенаправлению HTTP, в столбце состояния HTTP вы увидите "301 Перемещено навсегда", а другой новый HTTP-запрос будет ниже для нового местоположения. Если проблема связана с внешним перенаправлением, то там, где будут доказательства - новый запрос местоположения будет HTTP.
- Если ваша проблема связана с перенаправлением с внешнего сайта, вы увидите коды статуса "301 перемещен навсегда" для запросов, которые указывают на их новое местоположение.
- Выполните любое из этих 301 перемещений со знаком "плюс" слева и просмотрите заголовки ответов, чтобы узнать, что происходит. заголовок Location: сообщит вам новое местоположение, которое внешний сервер запрашивает для использования браузерами.
- Обратите внимание на эту информацию в перенаправлении, а затем отправьте дружественное вежливое письмо на внешний сайт и попросите удалить 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
Итак, важно отметить, что в заголовках ответов (выше) вы видите местоположение:, которое начинается с http://, а не https://. Ваш браузер учтет это при выяснении, действительно ли блокировка действительна или нет, и сообщите только частично зашифрованный контент! (Это действительно важная функция защиты браузера, которая предупреждает пользователей о потенциальной атаке XSRF и/или фишинге).
Решение в этом случае не является чем-то, что вы можете исправить на своем сайте - вы должны попросить внешний сайт остановить перенаправление на http. Часто это делалось на их стороне для удобства, не осознавая этого последствия, и хорошо написанное, вежливое письмо может исправить его.
Ответ 3
Некоторые элементы могут не перечислять http или https, в этом случае то, которое использовалось для страницы, будет использоваться для этих элементов, то есть, если запрос страницы находится под SSL, тогда эти изображения будут зашифрованы, а если запрос страницы не будет SSL, тогда они будут незашифрованными. Fiddler в Internet Explorer также может быть полезен для отслеживания некоторых из этих сведений.
Ответ 4
Понюхайте пакеты - это скажет вам очень быстро. WireShark - хорошая программа для такой задачи.
Ответ 5
Может ли firebug сделать это?
Изменить: похоже, Firebug также сделает это, используя панель "Net", которая также даст вам другую интересную статистику.
Ответ 6
Лучший инструмент, который я нашел для обнаружения http-ссылок в https-соединении, Fiddler. Это также отлично подходит для многих других усилий по устранению неполадок.
Ответ 7
Я использую для этого FF-плагин HTTPFox.