Обходной путь Небезопасная попытка JavaScript получить доступ к фреймам и специальным решениям - PullRequest
0 голосов
/ 04 июля 2011

я знаю, что этот предмет широко обсуждался, и нет способа заставить родительский фрейм изменить дочерний фрейм по соображениям безопасности.НО я разрабатываю специальное решение для некоторых клиентов, мы можем настроить там браузер и в конечном итоге установить плагин (который будет решением «провал»).Мы хотели бы настроить браузер (Chrome или любой другой), чтобы НЕ защищать браузер от этого.Моя цель - внедрить javascript в этот веб-сайт, не имея никакого доступа к этому веб-сайту.

Я на самом деле использую прокси php, который работает ... довольно плохо (как сохранить ссылки, когда они загружаются динамически через javascript?) и я не хотел бы разрабатывать плагин для Firefox, потому что он немного тяжелее и длиннее в настройке, я думаю.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 04 июля 2011

Вы можете общаться между 2 фреймами из 2 разных доменов, используя window.postMessage для последних браузеров.

Если вам требуется поддержка IE6 / IE7 или более старых браузеров, вы можете использоватьwindow.name hack.

Оба метода позволяют передавать строковые данные между кадрами.Затем вам нужно иметь несколько javascript с обеих сторон, которые слушают событие и совершают действие.Вам не нужно ничего менять в конфигурации браузера.

РЕДАКТИРОВАТЬ:

После вашего комментария есть еще один вариант: букмарклет ,Вы определяете страницу, подобную этой, на своем сайте, меняя путь к файлу js:

<html>
<body>
<a href="javascript:(function(){var s=document.createElement('SCRIPT');s.src='/url/to/your.js?'+(Math.random());document.getElementsByTagName('head')[0].appendChild(s);})()">Drag'n Drop this to your bookmarks</a>
</body>
</html>

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

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

0 голосов
/ 04 июля 2011

Ваш вопрос не так ясен. Но если вы хотите загрузить другой домен от родительского в iframe, нет никакого способа получить к нему доступ, ЕСЛИ ваш клиент не использует браузер с открытым исходным кодом и будет рад, если вы установите в своих системах взломанную версию браузера, которая позволит это.

Но я могу заверить вас, что этого не произойдет по разным причинам.

tl; dr: вы не можете.

...