И почему вы должны реализовать его на своем веб-сайте?

CSP — одна из первых линий защиты от злоумышленников в Интернете. По сути, политика безопасности контента позволяет вам указать, с каких адресов вы хотите разрешить вашему веб-сайту загружать скрипты и другие ресурсы. Это выглядит примерно так:

Чтобы установить его, вы либо добавите указанную выше строку (настроенную по своему вкусу) в раздел заголовка каждой страницы вашего веб-сайта, либо настроите свой сервер так, чтобы он делал то же самое за вас. Посетите раздел Примеры MDN Docs, если вы хотите сразу же приступить к делу, или читайте дальше, чтобы узнать больше о причинах и деталях.

Использование политики безопасности контента:

Вы собираете атрибуты CSP в следующем формате:

content="{sourceType} {restrictionRule}; {sourceType}{restrictionRule}; {sourceType} {restrictionRule}; etc..."

В CSP есть 5 sourceTypes, о которых вам следует знать. Каждый из них ограничивает разрешенные источники файлов определенного типа по указанному вами правилу. Например, если вы хотите разрешить своему веб-сайту запрашивать изображения только из текущего домена, вы можете добавить img-src ‘self’ в свой CSP. См. другие важные исходные местоположения ниже:

  1. default-src (относится к скриптам, загруженным на сайт)
  2. img-src
  3. media-src
  4. style-src
  5. connect-src (относится к AJAX и другим веб-API, которые отправляют информационные запросы через Интернет)

Вот пример CSP, использующий несколько исходных типов выше:

content = "default-src 'self'; style-src 'self'; img-src *; media-src media1.com media2.com; script-src userscripts.example.com;"

Как установить правила ограничения для каждого типа контента:

Синтаксис для установки определенных правил ограничения разнообразен и сложен, что позволяет вам установить любое restrictionRule, которое вы хотите для определенного sourceType. Вы можете прочитать синтаксис здесь.

Как насчет Google Analytics?

Ну да. Отличный улов. GA — это один из основных внешних скриптов, которые вам нужно будет загрузить на свой веб-сайт, и они являются довольно требовательным клиентом. Им потребуется, чтобы вы включили следующие директивы для правильной работы GA:

script-src: https://www.google-analytics.com https://ssl.google-analytics.com
img-src: https://www.google-analytics.com
connect-src: https://www.google-analytics.com

Зачем нужна политика безопасности контента?

Политика безопасности контента (CSP) помогает обнаруживать и смягчать определенные типы атак, включая межсайтовый скриптинг (XSS) и атаки с внедрением данных.

XSS (межсайтовый скриптинг)

Основная цель CSP — смягчить атаки XSS и сообщить о них. XSS-атаки используют доверие браузера к контенту, полученному с сервера. Наиболее распространенный режим XSS называется отражением, когда хакер отправляет ссылку, содержащую строку запроса со скриптом внутри (www.example.com?searchTerm=‹script src='www.hacker.ca'›‹/script›). ). Сервер «отражает» этот скрипт, отправляя его обратно в браузер пользователя, который неосознанно получает и выполняет скрипт. Эта тактика работает, потому что браузер доверяет источнику контента, даже если он исходит не оттуда, откуда кажется. В большинстве случаев CSP перехватывает этот тип атаки, блокируя загрузку исходного сценария.

Анализ пакетов

В дополнение к ограничению доменов, из которых может быть загружен контент, сервер может указать, какие протоколы разрешено использовать; например (и в идеале с точки зрения безопасности) сервер может указать, что весь контент должен загружаться с использованием HTTPS. HTTPS был создан для предотвращения перехвата пакетов, когда хакеры перехватывают и декодируют данные, когда они перемещаются по Интернету.

Я надеюсь, что этот краткий обзор политики безопасности контента будет полезен для некоторых из вас, спасибо за чтение!

~ Алекс Зито-Вольф