Как именно применяется политика того же домена?

Допустим, у меня есть домен, js.mydomain.com, и он указывает на какой-то IP-адрес, и на какой-то другой домен, requests.mydomain.com, который указывает на другой IP-адрес. Может .js файл загружен с js.mydomain.com сделать Ajax запросы requests.mydomain.com?

Как современные браузеры обеспечивают соблюдение политики одного домена?

2 ответа

Решение

Короткий ответ на ваш вопрос - нет: для вызовов AJAX вы можете получить доступ только к тому же имени хоста (и порту / схеме), с которого была загружена ваша страница.

Есть несколько обходных путей: один - создать URL в foo.example.com который действует как обратный прокси для bar.example.com, Браузеру все равно, где запрос фактически выполняется, если имя хоста совпадает. Если у вас уже есть интерфейсный веб-сервер Apache, это не будет слишком сложно.

Другой альтернативой является AJAST, который работает путем вставки тегов скрипта в ваш документ. Я считаю, что так работают API Google.

Хорошее описание той же политики происхождения вы найдете здесь: http://code.google.com/p/browsersec/wiki/Part2

Это не будет работать, потому что имя хоста другое. Считается, что две страницы имеют одинаковое происхождение, если они имеют одинаковый хост, протокол и порт.

Из Википедии о той же политике происхождения:

Термин "происхождение" определяется с использованием имени домена, протокола прикладного уровня и (в большинстве браузеров) TCP-порта документа HTML, на котором выполняется сценарий. Считается, что два ресурса имеют одинаковое происхождение, если и только если все эти значения абсолютно одинаковы.

Другие вопросы по тегам