# Что такое политика одного источника (SOP)

### Что такое SOP&#x20;

Политика одного источника (SOP) — это механизм, которым веб-браузеры ограничивают возможность взаимодействия скрипта, загруженного с одного сайта, с контентом других сайтов. \
\
Это ключевой аспект безопасности веб-приложений, который защищает пользовательские данные от различных атак межсайтового скриптинга (XSS) и других угроз.

### Принцип работы SOP

Давайте зайдем с метафоры. \
\
Представим, что в нашем городе разные районы, и в каждом районе есть свой магазин. Предположим, что нам нужно купить баночку Red Bull, но есть строгое правило: вы можем покупать энергетик только в магазине своего района. Если мы попытаемся купить Red Bull в магазине другого района, нам этого не позволят сделать. А теперь следим за магией. \
\
Районы — это веб-сайты, а магазины — серверы, которые предоставляют веб-страницы и информацию. Политика одного источника гарантирует, что скрипт (например, JavaScript), работающий на одной веб-странице, не может просто так перейти и взять информацию с другого веб-сайта. Он должен «покупать Red Bull» только в «магазине» своего «района» (домена). Это правило помогает защитить личную информацию от злоумышленников, которые могут попытаться её украсть, замаскировавшись под другой веб-сайт.\
\
Вот несколько примеров:&#x20;

* Загруженный с `https://example.com/page.html` JavaScript-скрипт не может отправить запросы на `https://another-domain.com/api/data` → поскольку домен источник отличается.
* Если JavaScript-скрипт на `https://example.com:80` пытается обратиться к `https://example.com:8080`→ запрос будет заблокирован, так как отличается порт.
* Загруженный с `http://example.com/page.html` скрипт не может прочитать содержимое страницы `https://example.com/secure-page.html` → так как здесь разницы в протоколах (http vs https).

### Почему SOP ограничивает разработчиков&#x20;

SOP накладывает ограничения на то, как скрипты на одной веб-странице могут взаимодействовать с ресурсами других доменов. Это создает несколько проблем:

1. Разработчикам сложно интегрировать внешние API или ресурсы в свои приложения без обхода SOP, например, через JSONP или серверный прокси.
2. SOP ограничивает традиционные AJAX-запросы к сервисам, расположенным на других доменах. Это может усложнить или замедлить разработку.
3. Некоторые приложения рассчитаны на разделение кода, ресурсов и данных между разными доменами. Тут тоже возникают проблемы с политикой.
4. Веб-приложения, развернутые на поддоменах одного и того же главного домена, также ограничены SOP и требуют дополнительных настроек для обмена данными.
5. SOP может усложнить процесс отладки и тестирования веб-приложений, особенно когда разработка ведется локально, а ресурсы в инете.

Чтобы преодолеть эти ограничения, иногда используют CORS (Cross-Origin Resource Sharing). Методика который позволяет создавать более гибкие запросы к другим доменам, при условии, что другой домен разрешает такой доступ.&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://notes.kraken-security.ru/kraken/krupicy-znanii/obshie-stati/chto-takoe-politika-odnogo-istochnika-sop.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
