Использование AJAX всплывающее (или IFRAME), который идет (в теории) к https://
на http://
странице вр две проблемы:
- Нападавший может перехватить страницу и заменить ее ссылкой.
- Это не позволяет пользователю проверить, к какому сайту подключен.
1-ая проблема связана с this question (не относящиеся к AJAX всплывающих окон, но за то, что на страницу входа через обычный HTTP, also discussed on Security.SE). Это идет вразрез с this OWASP recommendation:
Войти страницу и все последующие аутентифицированные страницы должны быть исключительно доступны через TLS. Начальная страница входа, называемая , «целевой страницы входа» должна быть подана через TLS. Неиспользование TLS для целевой страницы входа позволяет злоумышленнику изменить действие формы входа , в результате чего учетные данные пользователя будут опубликованы в произвольном месте .
По существу, MITM может изменять страницу, которую вы используете на сервере, чтобы ее заменить: пользователь не сможет заметить разницу (по крайней мере, пока не стало слишком поздно).
Вторая проблема заключается в том, что на самом деле хорошо видеть, что вы подключили (а также подключиться к следующему шагу) на веб-сайт, который вы хотите в адресной строке. Любой может иметь действительный сайт https://
: mybank.example.com
и attackers.example.com
могут иметь действительный сертификат, выданный доверенным органом. Если я подключусь к моему банку, я хочу знать, что это мой банк, я подключен через HTTPS. Отправка учетных данных на сайт https://
из всплывающего окна или iframe скрывает реальный целевой сайт.
Эта проблема также может возникать, когда начальная страница обслуживается через HTTPS, что, к сожалению, продемонстрировано 3-D Secure system (эти люди должны знать лучше, действительно!).
Вкратце, не используйте iframe или всплывающее окно и выполняйте страницу, на которой вы представляете форму входа через HTTPS.
Я думаю, что это возможно. Вы можете попробовать использовать функцию javascript, которая открывает всплывающее окно входа с адресом HTTPS. – user824294