Как браузер защищает в CORS?
DOM и браузер
В CORS браузер защищает пользователя, проверяя заголовки `Access-Control-Allow-` в ответе и блокируя чтение ответа кросс-доменного запроса, если сервер не разрешил origin.**
Как браузер защищает
CORS — механизм браузера (часть Same-Origin Policy). Браузер выполняет проверки:
1. Добавляет заголовок Origin
К кросс-доменному запросу браузер добавляет Origin с источником страницы.
2. Preflight для сложных запросов
Для «сложных» запросов (PUT/DELETE, кастомные заголовки, JSON) браузер сначала шлёт OPTIONS, спрашивая разрешение:
OPTIONS → сервер отвечает Access-Control-Allow-Methods/Headers3. Проверка ответа
Браузер проверяет Access-Control-Allow-Origin в ответе. Если origin не разрешён — блокирует чтение ответа JavaScript-ом (выдаёт ошибку CORS).
Что именно защищается
- Браузер блокирует чтение ответа, а не сам запрос (он часто доходит до сервера).
- Так вредоносный сайт не прочитает приватные данные пользователя через его сессию/cookie.
Главное
- CORS действует только в браузере (curl/сервер не проверяют).
- Сервер решает, каким origin разрешить (заголовки).
- Для credentials (cookie) нужен конкретный origin, не
*.
Коротко для собеседования
В CORS браузер защищает пользователя: добавляет Origin, для сложных запросов делает preflight OPTIONS, проверяет Access-Control-Allow-Origin в ответе и блокирует чтение ответа JS-ом, если origin не разрешён. Так чужой сайт не прочитает данные пользователя через его сессию. Защита только браузерная; сервер задаёт разрешения.