Политика одного и того же источника — это функция безопасности браузера, которая ограничивает взаимодействие документов и сценариев в одном источнике с ресурсами в другом источнике.
Браузер может загружать и отображать ресурсы с нескольких сайтов одновременно. У вас может быть одновременно открыто несколько вкладок или на сайте может быть встроено несколько iframe с разных сайтов. Если нет ограничений на взаимодействие между этими ресурсами и скрипт скомпрометирован злоумышленником, скрипт может раскрыть все, что находится в браузере пользователя.
Политика одного и того же источника предотвращает это, блокируя доступ на чтение к ресурсам, загруженным из другого источника. «Но подождите, — скажете вы, — я все время загружаю изображения и скрипты из других источников». Браузеры позволяют нескольким тегам встраивать ресурсы из другого источника. Эта политика в основном является историческим артефактом и может подвергнуть ваш сайт уязвимостям, таким как кликджекинг с использованием iframe . Вы можете ограничить чтение этих тегов из разных источников с помощью Политики безопасности контента .
Что считается одинакового происхождения?
 Источник определяется схемой (также известной как протокол, например HTTP или HTTPS), портом (если он указан) и хостом. Если все три URL одинаковы для двух URL-адресов, они считаются имеющими одно и то же происхождение. Например, http://www.example.com/foo имеет тот же источник, что и http ://www.example.com/bar , но не https ://www.example.com/bar поскольку схема другая.
Что разрешено, а что запрещено?
Как правило, встраивание ресурса из разных источников разрешено, тогда как чтение ресурса из разных источников блокируется.
| iframe | Встраивание из разных источников обычно разрешено (в зависимости от директивы X-Frame-Options), но чтение из разных источников (например, использование JavaScript для доступа к документу в iframe) — нет. | 
| CSS | CSS из разных источников можно внедрить с помощью элемента <link>или@importв файл CSS. Может потребоваться правильный заголовокContent-Type. | 
| формы | URL-адреса перекрестного происхождения можно использовать в качестве значения атрибута actionэлементов формы. Веб-приложение может записывать данные формы в пункт назначения с несколькими источниками. | 
| изображения | Разрешено встраивание изображений из разных источников. Однако чтение данных изображения из разных источников (например, извлечение двоичных данных из изображения из разных источников с помощью JavaScript) блокируется. | 
| мультимедиа | Видео и аудио из разных источников можно встроить с помощью элементов <video>и<audio>. | 
| сценарий | Могут быть встроены сценарии перекрестного происхождения; однако доступ к определенным API (например, запросам на выборку из разных источников) может быть заблокирован. | 
TODO: DevSite — подумайте и проверьте оценку
Как предотвратить кликджекинг
 Атака под названием «кликджекинг» заключается в встраивании сайта в iframe и наложении на него прозрачных кнопок, ведущих к другому месту назначения. Пользователей обманом заставляют думать, что они получают доступ к вашему приложению, одновременно отправляя данные злоумышленникам.
 Чтобы запретить другим сайтам встраивать ваш сайт в iframe, добавьте в HTTP-заголовки политику безопасности контента с директивой frame-ancestors .
 Альтернативно вы можете добавить X-Frame-Options в заголовки HTTP, список опций см. в MDN .
Заворачивать
Надеюсь, вы почувствуете небольшое облегчение от того, что браузеры усердно работают над обеспечением безопасности в Интернете. Несмотря на то, что браузеры пытаются обезопасить себя, блокируя доступ к ресурсам, иногда вам может потребоваться доступ к ресурсам перекрестного происхождения в ваших приложениях. В следующем руководстве вы узнаете о совместном использовании ресурсов из разных источников (CORS) и о том, как сообщить браузеру, что загрузка ресурсов из разных источников разрешена из доверенных источников.