В чем безопасность CORS?
DOM и браузер
Безопасность CORS в том, что он защищает пользователя: не даёт стороннему сайту читать ответы кросс-доменных запросов, отправленных с его cookie/сессией.
Что защищает CORS
CORS — часть Same-Origin Policy, защищающей пользователя. Без неё вредоносный сайт evil.com мог бы:
// на evil.com
fetch('https://bank.com/api/account', { credentials: 'include' })
.then(r => r.json()) // прочитать приватные данные пользователяCORS блокирует чтение такого ответа, если bank.com не разрешил origin evil.com. Так злоумышленник не украдёт данные через сессию пользователя.
Нюансы безопасности
- CORS защищает чтение ответа в браузере, а не сам сервер.
- Запрос часто доходит до сервера (для изменяющих операций нужна ещё защита от CSRF).
- Это защита браузера — не действует вне браузера (curl, сервер).
- Сервер контролирует, каким origin разрешить (
Access-Control-Allow-Origin).
Что CORS НЕ защищает
- Сам сервер от прямых запросов (curl/Postman обходят).
- От CSRF (запрос уходит, но ответ не читается) — нужен
SameSite/токены.
Безопасная настройка
- Разрешать только доверенные origin, не
*для приватных API. - При
credentials: true— конкретный origin.
Коротко для собеседования
Безопасность CORS — защита пользователя: не даёт стороннему сайту прочитать ответ кросс-доменного запроса, отправленного с его cookie (через Same-Origin Policy). Защищает чтение ответа в браузере, не сервер. От CSRF (изменяющих действий) нужна отдельная защита. Разрешать только доверенные origin.