Описание тега cross-domain
Политика безопасности браузера с одинаковым происхождением запрещает клиентскому приложению браузера, работающему в контексте одного домена веб-сервера (DNS-имени), взаимодействовать, обмениваться данными или считывать данные из клиентского кода браузера, работающего в контексте другого домена веб-сервера..
Пример: учитывая родительскую html-страницу, обслуживаемую из домена A.com, на котором размещен дочерний элемент iframe, URL-адрес src которого - B.com, скрипт, выполняемый в контексте родительской html-страницы, не может видеть переменные или функции, определенные внутри iframe, и наоборот. наоборот. Родительская страница может писать в свойство url SRC iframe, но не может читать свойство, поскольку URL-адрес может содержать личную информацию.
Другой пример: скрипт, запущенный в контексте веб-страницы, обслуживаемой из домена A.com, не может отправить XmlHttpRequest веб-службе в домене B.com.
Политика одинакового происхождения требует, чтобы URL-адрес запрашивающего контекста браузера совпадал с URL-адресом контекста целевого браузера в схеме, имени домена и порте. Пути, запросы и хэш-теги не учитываются при сопоставлении доменов. Имена доменов должны точно совпадать - foo.a.com не может обмениваться данными с элементами скрипта или DOM, находящимися на bar.a.com или a.com. Браузер соответствует только доменному имени, но не IP-адресам или другим формам идентификации сервера.
Некоторые браузеры поддерживают " понижение уровня домена" или явную установку контекста домена страницы, размещенной на поддомене, для родительского домена. Это полезно для связи между разрозненными подразделениями в корпоративной веб-среде, но менее полезно для общедоступного Интернета.
Есть два заметных исключения из политики безопасности браузера с одинаковым происхождением: <script>
а также <img>
Теги html могут загружать данные с любого URL-адреса. Эти исключения часто лежат в основе законных междоменных коммуникаций (таких как jsonp), а также злонамеренных атак межсайтового скриптинга. Другие методы междоменного взаимодействия включают обмен данными между родительским окном и дочерним iframe путем записи в свойство окна iframe (которое можно читать с обеих сторон стены) и "проталкивание" данных от родительского окна к дочернему iframe с помощью запись данных в свойство url SRC iframe.
Собственные исполняемые плагины браузера обычно выполняются за пределами "песочницы" сценариев браузера и, таким образом, не подчиняются политике безопасности браузера того же происхождения. Adobe Flash и Microsoft Silverlight - это плагины для браузера, которые предлагают некоторую степень междоменного взаимодействия через свои программные API, открытые для скриптов браузера.
Черновик стандарта HTML 5 включает в себя раздел связи, который определяет API передачи сообщений, который может использоваться для передачи данных между скриптами браузера, выполняемыми в разных доменах одного и того же браузера, если обе стороны согласны и сотрудничают для завершения обмена.