Подтвердить что ты не робот

Что именно может IFrame делать с top.Location object (cross-domain)?

В междоменных политиках существует очень конкретный аргумент в отношении объекта window.top.Location...

Скажем, у меня есть IFrame A, в домене www.bbb.com, живущий внутри страницы в домене www.aaa.com.

Страница внутри IFrame может:

  • Сравните window.top.location с окном .location(чтобы определить, будет ли он обрамлен)
  • Вызов window.top.location.replace(window.location) для перенаправления на self
  • Вызовите window.top.location.replace( "любая произвольная строка" ) для перенаправления в другое место

Но он не может:

  • Alert, Document.Write или любой вид вывода window.top.location.href
  • Объединить его в любую другую переменную или использовать ее любым полезным способом.
  • Вызов window.top.location.reload()

Это именно те, которые я могу быстро найти. Я уверен, что есть другие крайние случаи.
Похоже, что браузер не позволяет использовать объект top.location, если вершина находится в другом домене, кроме для нескольких белых элементов...

Является ли это документированным где угодно?
Могу ли я узнать, что это за белые вещи? Это в стандарте HTML и реализовано одинаково во всех браузерах? Или это реализация этого полуслучайного?

4b9b3361

Ответ 1

Правила безопасности отличаются от версии браузера. Обычно более новые версии имеют более строгие правила, но также более точно настроены.

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

Возможно, вам удастся найти документацию об этом, но она будет конкретной для каждого браузера и конкретной для каждой версии браузера. Насколько я знаю, для этого нет реального стандарта. Каждый поставщик браузера пытается защитить пользователя как можно больше, сохраняя при этом некоторую удобство для создания веб-сайта. Как правило, вы не можете предположить, что что-то близко к границе работает во всех браузерах или что оно будет продолжать работать в будущих версиях.