24 августа 2011 г.

Chrome 14 блокирует небезопасный JavaScript

Оригинал статьи: Chrome 14 Blocks Insecure JavaScript

Браузер Chrome 14, доступный в бета-версиях, обзавёлся функцией безопасности, которая может повлиять на отображение большого числа сайтов. При посещении сайта, использующего SSL, загрузка этим сайтом скриптов по нешифрованному соединению может быть блокирована браузером Chrome.

Если безопасность веб-сайта обеспечивается протоколом HTTPS, веб-дизайнер также должен обеспечить загрузку всех используемых страницей скриптов тем же безопасным способом, что и сама страница. Аналогичные требования предъявляются и к плагинам и внешним таблицам стилей CSS, используемым веб-страницей, поскольку они трактуются так же, как сценарии JavaScript. Когда это не так (что иногда называют ситуацией «смешанных скриптов»), посетители сайта подвергаются риску того, что атакующие могут вмешаться в работу сайта и подменить скрипт в собственных интересах.

Обычно браузеры запускали смешанные скрипты, подлинные или нет, и уведомляли пользователя постфактум с помощью пиктограммы со сломанным замком, или диалоговым окном, или маркируя https:// в адресной строке красным цветом (в случае Google Chrome). Проблема такого подхода состоит в том, что к этому моменту скрипт уже выполнен и уже поздно что-то предпринимать: скрипт получил доступ ко всем данным страницы. Теперь Google Chrome защищает пользователей, заранее блокируя запуск любых скриптов на безопасной странице, если они переданы не безопасным способом.

Можно обойти это ограничение, нажав на «Load anyway» (‘Всё равно загрузить’), но Chrome не запоминает выбор пользователя. К сожалению, невозможно и внести домен или поддомен в белый список, так что придётся каждый раз нажимать «Load anyway» и ждать перезагрузки страницы. Функцию можно отключить, запустив браузер с параметром --allow-running-insecure-content, однако Google считает, что этим следует пользоваться только «админам, работающим с внутренними приложениями, при невозможности немедленно исправить эти ошибки».

Также в Chrome появились и другие функции безопасности, включая генерирование случайных чисел, способ принудительной коммуникации по HTTPS с любым нужным доменом, первичное внедрение Content Security Policy (‘политика безопасности в отношении содержания’), обеспечивающее защиту против межсайтового скриптинга (Cross Site Scripting), а также более безопасный доступ к Gmail, использующий HTTPS для всех соединений, даже в том случае, когда пользователь набирает в адресной строке gmail.com.