PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

В чем разница между CORS и CSP?

DOM и браузер

CORS и CSP — оба механизма безопасности через HTTP-заголовки, но решают разные задачи: CORS управляет кросс-доменными запросами (чтением ответов), а CSP — источниками загружаемых ресурсов (защита от XSS).

CORS (Cross-Origin Resource Sharing)

Управляет тем, каким origin разрешено читать ответы кросс-доменных запросов. Защищает пользователя от кражи данных через его сессию (Same-Origin Policy).

Access-Control-Allow-Origin: https://app.com

Вопрос CORS: «может ли сайт A читать ответ от сервера B?»

CSP (Content-Security-Policy)

Указывает браузеру, из каких источников загружать ресурсы (скрипты, стили, изображения). Защищает прежде всего от XSS — блокирует выполнение внедрённых/сторонних скриптов.

Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.com

Вопрос CSP: «откуда можно грузить и выполнять ресурсы на этой странице?»

Различия

  • Задача: CORS — контроль кросс-доменных запросов; CSP — контроль источников ресурсов.
  • От чего защищает: CORS — от чтения чужих данных; CSP — от XSS и инъекций.
  • Направление: CORS — про исходящие запросы к другим origin; CSP — про загрузку ресурсов на текущую страницу.

Общее

Оба — заголовки безопасности, оба контролирует браузер, дополняют друг друга.

Коротко для собеседования

CORS управляет тем, каким origin можно читать ответы кросс-доменных запросов (защита от кражи данных через сессию). CSP ограничивает источники загружаемых ресурсов (защита от XSS). CORS — про кросс-доменные запросы, CSP — про источники ресурсов страницы. Оба — заголовки безопасности, дополняют друг друга.

Другие вопросы раздела