#javascript #comet #same-origin-policy
#javascript #comet #политика того же источника
Вопрос:
Я пытаюсь выяснить, служит ли настройка цели при загрузке содержимого из iframes, document.domain='example.com'
если SOP в любом случае не будет нарушен. В моем сценарии у меня есть html-страница на www.example.com который загружает iframe на www.example.com/iframe (весь порт 80) — итак, насколько я понимаю, настройка свойства document.domain здесь не нужна.
В FF3 код javascript, передаваемый из iframe, однако, не выполняется, если я не задам document.domain
свойство явно как на родительской странице, так и на iframe. В FF4 он не выполняется ни при одной из настроек. Я также пробовал использовать префикс www в имени хоста — никакой разницы. Firebug показывает, что фрагментированная часть, содержащая полное содержимое <script>
тега, все же была загружена.
Означает ли это, что настройка document.domain
все еще имеет цель, когда нет задействованных поддоменов или xss?
Ответ №1:
Настройка document.domain
не должна иметь эффекта в вашем случае, если не происходит что-то еще.
Я предлагаю вам не трогать document.domain
и попытаться найти реальную причину вашей проблемы. Вмешательство в document.domain
приведет только к проблемам при выполнении AJAX или загрузке файлов через iframes и тому подобное, поскольку они не обязательно будут использовать новый суффикс домена.
Но, чтобы ответить, нет, у этого нет другой цели, кроме ослабления SOP при обмене данными между поддоменами.
Комментарии:
1. Спасибо за ваш ответ. Может ли простое «получение»
document.domain
иметь какой-либо эффект? Также «если не происходит что-то еще» — что может быть чем-то еще?