Заполните форму в iframe внешнего сайта - PullRequest
0 голосов
/ 14 марта 2012

Я пытаюсь написать страницу php, которая будет загружать несколько разных сайтов в разных фреймах.Некоторые из этих сайтов потребуются пользователю для входа.Что мне нужно сделать, так это разрешить пользователю вводить имя пользователя и пароль только один раз, а затем заполнять все остальные формы (которые в основном используют одну и ту же пару проходов для входа в систему)

Теперь я знаючто поскольку это внешние сайты, у вас нет доступа к DOM, и XSS не разрешен и все такое, но мне было интересно, есть ли вообще какой-то другой способ добиться этого.

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

ПРИМЕЧАНИЕ. Я также проверил this , но согласие с другими сайтами / доменами в моем случае не вариант!

Спасибо - Майк

Ответы [ 2 ]

1 голос
/ 14 марта 2012

это зависит.

если эти сайты совместно используют домен (родительское окно и iframes), тогда верхнее окно может связываться с дочерними iframes.AJAX предотвращает междоменный домен (который включает междоменные домены), но iframes может обмениваться данными, если они принадлежат одному верхнему домену.

см. https://stackoverflow.com/a/9338955/575527 и https://stackoverflow.com/a/9676156/575527

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

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

все из которых требуют дополнительной проверки CSRF и XSS, поскольку идентификаторы сеансов находятся воткрытый.

0 голосов
/ 14 марта 2012

Вы не можете делать то, что вы описываете в JavaScript.

Однако, в зависимости от того, что вам нужно делать с данными / веб-сайтами после входа пользователя в систему, вы можете использовать удаленный POST для имитации этого поведения.См. этот вопрос для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...