Аутентификация входа в социальную сеть через iframe вместо Pop Up - PullRequest
0 голосов
/ 17 декабря 2011

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

Можно ли использовать вместо этого iframe.

Каждый раз, когда я пытаюсь это сделать, процедура запускается, но пользователь не входит в систему. Он выглядит неправильно для перенаправления.

отредактировано -

Я провел некоторую отладку и думаю, что проблема в функции javascript в загружаемом файле PHP.

Во всплывающей версии это функция javascript.

window.opener.wsl_wordpress_social_login({
        'action'   : 'wordpress_social_login',
        'provider' : '<?php echo $provider ?>'
    });

    window.close();

Таким образом, с помощью своей функции iframe я создал это.

window.parent.document.getElementById('iframe').wsl_wordpress_social_login({
        'action'   : 'wordpress_social_login',
        'provider' : '<?php echo $provider ?>'
    });

FIREBUG говорит мне об этом ::

    window.parent.document.getElementById("iframe").wsl_wordpress_social_login is not a function
[Break On This Error] 'provider' : 'Facebook' 

1 Ответ

1 голос
/ 19 января 2012

Я так понимаю, вы используете кнопки «Войти с помощью Google» или «Войти с помощью Facebook», которые используют oauth для вашего сайта?

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

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

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

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