Что такое Same-Origin Policy (SOP)?
Производительность и безопасность сети
Same-Origin Policy — правило безопасности браузера: скрипт со страницы одного origin не может читать данные другого origin. Origin — это сочетание протокола, домена и порта.
https://site.com/a и https://site.com/b — один origin
https://site.com и http://site.com — разные (протокол)
https://site.com и https://api.site.com — разные (домен)
https://site.com и https://site.com:8443 — разные (порт)Что ограничивается
- Чтение ответов
fetch/XMLHttpRequestна другой origin. - Доступ к DOM чужого
iframe. - Доступ к
localStorageи cookie другого origin.
Что разрешено
- Подключение скриптов, стилей, изображений с другого origin (но не чтение их содержимого).
- Отправка запросов (форм) на другой домен — блокируется именно чтение ответа.
Как обходят ограничение легально
- CORS — сервер сообщает заголовками (
Access-Control-Allow-Origin), какие origin могут читать ответ. - `postMessage` — безопасный обмен между окнами и iframe.
- Прокси на своём бэкенде.
Зачем нужно
Без SOP вредоносный сайт мог бы от имени вошедшего пользователя читать письма или данные банка в другой вкладке.
Коротко для собеседования
SOP запрещает странице читать ресурсы другого origin (протокол + домен + порт). Расслабляют его через CORS, postMessage и проксирование. Защита от кражи данных между сайтами, но не от CSRF-запросов.