`)\n\n### Когда они работают вместе\n\n```javascript\n// Server response headers\nAccess-Control-Allow-Origin: https://trusted-client.com\nContent-Security-Policy: default-src self; script-src self https://trusted-cdn.com\n```\n\n**CORS** разрешает запрос с другого домена, а **CSP** гарантирует, что скрипты в ответе могут быть только с доверенных источников.\n\n### Вывод\n\n- **CORS** нужен, когда фронтенд и бэкенд на разных доменах\n- **CSP** нужен всегда, чтобы защитить от XSS-атак\n- Они решают разные задачи и не конкурируют между собой","dateCreated":"2026-04-02T22:04:28.912234","upvoteCount":0,"author":{"@type":"Person","name":"claude-haiku-4.5"}}}}
← Назад к вопросам

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

2.0 Middle🔥 201 комментариев
#Браузер и сетевые технологии

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI2 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Разница между CORS и CSP

CORS (Cross-Origin Resource Sharing) и CSP (Content Security Policy) — это два разных механизма безопасности браузера, решающие разные задачи.

CORS: Управление кросс-доменными запросами

CORS контролирует, какие кросс-доменные HTTP-запросы допустимы. Это механизм на уровне браузера, который спрашивает у сервера: «Разрешен ли мне обращаться к твоим ресурсам с другого домена?»

Когда браузер делает запрос с одного домена на другой, он:

  1. Отправляет preflight-запрос (OPTIONS)
  2. Сервер отвечает с CORS-заголовками
  3. Если разрешено — браузер отправляет реальный запрос
// Клиент отправляет запрос с домена A на домен B
fetch("https://api.another-domain.com/data")
  .then(res => res.json())
  .catch(err => console.error("CORS error:", err));

Сервер должен вернуть нужные заголовки:

// Ответ сервера B
Access-Control-Allow-Origin: https://domain-a.com
Access-Control-Allow-Methods: GET, POST, PUT
Access-Control-Allow-Headers: Content-Type, Authorization
Access-Control-Allow-Credentials: true

CSP: Защита от XSS-атак

CSP — это политика безопасности контента. Она контролирует, какие источники контента (скрипты, стили, изображения) браузер может загружать и выполнять.

CSP защищает от:

  • XSS-атак (инъекция вредоносного кода)
  • Перехвата данных
  • Кликджекинга
// Ответ сервера со своего домена
Content-Security-Policy: default-src self; script-src self trusted-cdn.com; style-src self unsafe-inline

Это означает:

  • По умолчанию загружай ресурсы только со своего домена (self)
  • Скрипты можно загружать со своего домена и с trusted-cdn.com
  • Стили можно инлайнить и загружать со своего домена

Ключевые различия

ПараметрCORSCSP
ЦельРазрешить кросс-доменные запросыЗащита от XSS-атак
МеханизмПроверка источника запросаПроверка источника ресурса
КонтролируетHTTP-запросы между доменамиЗагрузку скриптов, стилей, изображений
УровеньСетевой (HTTP)Контента (ресурсы)
ЗаголовокAccess-Control-Allow-*Content-Security-Policy

Практический пример

// Фронтенд на https://myapp.com
// Отправляем запрос на https://api.myapp.com

fetch("https://api.myapp.com/users", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ name: "John" })
})
.then(res => res.json())
.catch(err => console.error("Error:", err));

CORS проверка: Браузер пропустит запрос, если api.myapp.com вернет Access-Control-Allow-Origin: https://myapp.com

CSP проверка: Браузер не позволит загрузить вредоносный скрипт, если он не с разрешённого домена (например, если на странице попадёт <script src="https://malicious.com/hack.js"></script>)

Когда они работают вместе

// Server response headers
Access-Control-Allow-Origin: https://trusted-client.com
Content-Security-Policy: default-src self; script-src self https://trusted-cdn.com

CORS разрешает запрос с другого домена, а CSP гарантирует, что скрипты в ответе могут быть только с доверенных источников.

Вывод

  • CORS нужен, когда фронтенд и бэкенд на разных доменах
  • CSP нужен всегда, чтобы защитить от XSS-атак
  • Они решают разные задачи и не конкурируют между собой
В чем разница между CORS и CSP? | PrepBro