Обнаружить сломанный значок замка (смешанный защищенный / незащищенный контент) из Javascript - PullRequest
8 голосов
/ 09 ноября 2010

Я работаю над тем, чтобы сделать сайт полностью работоспособным под HTTPS. Как часть этого, я хотел бы гарантировать, что мы никогда не «сломаем замок». То есть мы никогда не должны загружать содержимое, не относящееся к SSL, на страницу SSL, что может вызвать предупреждение или другой индикатор в зависимости от браузера. Чтобы убедиться в этом, я хотел бы сделать две вещи:

  1. Напишите тесты Selenium, которые проверяют, что различные действия не нарушают блокировку.
  2. Записать код регистрации в JS, который проверяет во время сеанса пользователя, снята ли блокировка, и регистрируется на сервере, если он есть.

Существует ли какой-либо метод, который можно использовать в JS для проверки неисправного / неразрушенного состояния значка блокировки HTTPS в браузере? Или, что эквивалентно, смешанное / несмешанное состояние содержимого текущей страницы?

Ответы [ 3 ]

4 голосов
/ 18 ноября 2010

Вы не можете обнаружить это из самого JavaScript, но вы можете использовать HTTP-заголовок Content-Security-Policy (CSP) , чтобы указать браузеру отправлять отчеты о смешанном контенте либо на ваш сервер, либосторонняя служба агрегирования.

Вот пример заголовка CSP, который сообщает о смешанном контенте сторонней службе, report-uri.io:

Content-Security-Policy-Report-Only: default-src https:; report-uri https://report-uri.io/report/<YOUR_NAME_HERE>

Эта статья автора сообщения URI содержит более подробные сведения о том, как это работает.Вы также можете настроить свой заголовок CSP так, чтобы он сообщал на свой собственный URL, если вы предпочитаете.

2 голосов
/ 09 ноября 2010

Вы можете перебрать весь DOM и проверить все ссылки, чтобы убедиться, что они https://.

0 голосов
/ 11 февраля 2015

Вы можете использовать Сканирование смешанного контента , написанные мной скрипты PHP CLI, которые сканируют ваш сайт на наличие смешанного контента.

Запустите этот скрипт из CLI, например:

$ mixed-content-scan https://www.bram.us/

Скрипт сам начнет сканирование и даст обратную связь во время работы. При обнаружении смешанного содержимого на экране будут отображаться URL-адреса, вызывающие предупреждения о смешанном содержимом:

$ mixed-content-scan https://www.bram.us/
[2015-01-07 12:54:20] MCS.NOTICE: Scanning https://www.bram.us/ [] []
[2015-01-07 12:54:21] MCS.INFO: 00000 - https://www.bram.us/ [] []
[2015-01-07 12:54:22] MCS.INFO: 00001 - https://www.bram.us/projects/ [] []
[2015-01-07 12:54:22] MCS.INFO: 00002 - https://www.bram.us/projects/mint-custom-title/ [] []
[2015-01-07 12:54:23] MCS.INFO: 00003 - https://www.bram.us/projects/bramusicq/ [] []
[2015-01-07 12:54:24] MCS.INFO: 00004 - https://www.bram.us/projects/gm_bramus/ [] []
[2015-01-07 12:54:24] MCS.INFO: 00005 - https://www.bram.us/projects/js_bramus/ [] []
[2015-01-07 12:54:26] MCS.INFO: 00006 - https://www.bram.us/projects/js_bramus/jsprogressbarhandler/ [] []
[2015-01-07 12:54:27] MCS.INFO: 00007 - https://www.bram.us/projects/js_bramus/lazierload/ [] []
[2015-01-07 12:54:27] MCS.INFO: 00008 - https://www.bram.us/projects/the-box-office/ [] []
[2015-01-07 12:54:28] MCS.INFO: 00009 - https://www.bram.us/projects/tinymce-plugins/ [] []
[2015-01-07 12:54:29] MCS.INFO: 00010 - https://www.bram.us/projects/tinymce-plugins/tinymce-classes-and-ids-plugin-bramus_cssextras/ [] []
[2015-01-07 12:54:30] MCS.INFO: 00011 - https://www.bram.us/projects/flashlightboxinjector/ [] []

...

[2015-01-07 12:54:45] MCS.INFO: 00036 - https://www.bram.us/2007/06/04/accessible-expanding-and-collapsing-menu/ [] []
[2015-01-07 12:54:45] MCS.ERROR: 00037 - https://www.bram.us/demo/projects/jsprogressbarhandler/ [] []
[2015-01-07 12:54:45] MCS.WARNING: http://www.google-analytics.com/urchin.js [] []
[2015-01-07 12:54:46] MCS.INFO: 00038 - https://www.bram.us/2008/07/11/ror-progress-bar-helper/ [] []
[2015-01-07 12:54:46] MCS.INFO: 00039 - https://www.bram.us/2008/11/10/jsprogressbarhandler-033/ [] []
[2015-01-07 12:54:47] MCS.ERROR: 00040 - https://www.bram.us/demo/projects/lazierload/ [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1212/1285026452_0aeb38b6e6.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1074/1273115418_a77357040a.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1096/1273106588_91f7a736c6.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1324/1216309045_31ca82f9d9.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1262/1217169586_e4b2bfa7df.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1149/1216304291_63fd48d9c4.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1366/1216301505_51b3c590ff.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1184/1216299847_c57975bed2.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1085/1217158084_a9b059d25b.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1040/1216293529_3b7c044815.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1029/1084232736_5b8c023f46.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1318/1043062251_17071a8cc7.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1221/1043059543_05713e6156.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://www.google-analytics.com/urchin.js [] []
[2015-01-07 12:54:47] MCS.INFO: 00041 - https://www.bram.us/2011/09/30/css-regions-and-css-exclusions/ [] []
[2015-01-07 12:54:47] MCS.INFO: 00042 - https://www.bram.us/2014/06/04/good-looking-shapes-gallery/ [] []

...

Также возможно передать файл, содержащий список URL для сканирования, и изменить вывод на JSON. Игнорировать шаблоны также поддерживаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...