Firefox 4 поддерживает политику безопасности содержимого
Политика безопасности контента — это стандарт, разработанный Mozilla для защиты от атак межсайтового скриптинга (XSS). Атаки с использованием межсайтовых сценариев используют уязвимости на веб-сайтах для внедрения кода JavaScript на страницы или URL-адреса этого сайта. Внедренный код JavaScript затем выполняется, когда посетители открывают специально подготовленную ссылку или страницу на веб-сайте. Атаки могут иметь серьезные последствия, например, можно украсть файлы cookie у пользователей, чтобы выдать их за них на сайте.
Политика безопасности контента разрабатывалась уже довольно давно. Основная идея стандарта — дать веб-мастерам под рукой инструмент для внесения в белый список JavaScript и других объектов и файлов, которые могут выполняться на сайте. Эта реализация блокирует весь код JavaScript, который выполняется на сайте, а не в списке разрешенных сайтов, что означает, что злоумышленники не могут использовать возможные XSS-уязвимости на сайте или сервере.
Браузер, поддерживающий CSP, игнорирует код, которого нет в белом списке. Браузеры, не поддерживающие CSP, игнорируют политику.
Защита безопасности контента для пользователей
CSP в настоящее время поддерживается только Firefox 4, Thunderbird 3.3 и SeaMonkey 2.1. Вы можете проверить работоспособность, посетив эту тестовую страницу.
Twitter недавно объявили, что добавили CSP в свою мобильную версию, доступную на mobile.twitter.com. Пользователи, которые используют один из вышеупомянутых браузеров, защищены от XSS-атак на этот веб-сайт.
Инженеры Twitter удалили весь JavaSCript из кода и реализовали заголовок CSP. Затем они ограничили заголовок для пользователей Firefox 4 и создали набор правил, разрешающий использование JavaScript в их ресурсах. Это включало сеть доставки контента, используемую для доставки таблиц стилей и профилей пользователей.
Разработчики столкнулись с неожиданными проблемами. Они заметили, например, что некоторые надстройки Firefox вставляли JavaScript при загрузке страницы, что запускало отчет об угрозе. Кроме того, инженеры Twitter заметили, что некоторые интернет-провайдеры вставляли код JavaScript или изменяли теги изображений для кеширования.
Им удалось решить эти проблемы, потребовав SSL для всех пользователей Firefox 4, которые заходят на мобильный сайт Twitter.
Тест с Firebug показывает, что мобильная версия Twitter действительно использует политику на сайте. Обратите внимание, что Twitter выполняет проверку пользовательского агента и очень ограничивает ее. Пользователи Firefox 5 или Firefox 6 в настоящее время не получат эту политику.
Защита контента для веб-мастеров
У веб-мастеров может быть некоторая работа по добавлению поддержки CSP на свой веб-сайт. Код JavaScript, который непосредственно встроен в документы, больше не будет выполняться, что имеет несколько последствий. Веб-мастерам необходимо перенести код во внешние файлы JavaScript.
Политики указаны с X-Content-Security-Политика заголовок. Заголовок X-Content-Security-Policy: разрешить сам * .ghacks.net например, позволяет загружать JavaScript с ghacks.net и всех поддоменов ghacks.net.
В используя CSP руководство по Mozilla предлагает дополнительные примеры того, как установить правильные заголовки.
Браузеры, не поддерживающие CSP, игнорируют заголовок.
CSP предлагает две дополнительные формы защиты. Он снижает риск атак с использованием кликджекинга. Под кликджекингом подразумевается направление щелчка мышью пользователя на цель на другом сайте. Часто это делается с помощью прозрачных рамок на исходном веб-сайте.
Политику безопасности контента также можно использовать для смягчения атак с перехватом пакетов, поскольку она позволяет веб-мастеру использовать определенные протоколы, которые разрешено использовать. Например, можно принудительно установить соединения только HTTPS.
Доступны директивы политики CSP здесь на Mozilla.
Рядом с уже упомянутыми опциями находятся параметры конкретных хостов, с которых могут быть загружены изображения, медиафайлы, объекты или шрифты.
Плагины доступны для WordPress а также Drupal которые автоматически добавляют политику к поддерживаемым веб-сайтам при активации.
Букмарклет
А букмарклет был создан Брэндоном Стерном, чтобы помочь веб-мастерам определить правильный заголовок. Он в основном сканирует страницу на предмет наличия JavaScript и отображает предлагаемую политику.
Проблемы и опасения
Самая большая проблема в настоящее время заключается в том, что CSP поддерживается только Firefox 4. Не Internet Explorer, Chrome, Opera или Safari. Но даже если бы он поддерживался всеми браузерами, реализация заголовков на своих веб-сайтах все равно зависела бы от веб-мастеров.
Толчок в правильном направлении может исходить от Twitter, если будет принято решение перенести заголовок CSP и на главный веб-сайт Twitter.