Использование всплывающего окна AJAX (или iframe), которое (теоретически) переходит на https://
на странице http://
, представляет две проблемы:
- Злоумышленник может перехватить страницу и заменить ссылку своей собственной.
- Это не позволяет пользователю проверять, к какому сайту он подключен.
Первая проблема связана с этим вопросом (не относится только к всплывающим окнам AJAX, но для страницы входа по обычному HTTP, также обсуждается в Security.SE ). Это противоречит этой рекомендации OWASP :
Страница входа и все последующие аутентифицированные страницы должны быть
доступ исключительно по TLS. Начальная страница входа, называемая
"целевая страница входа в систему", должна обслуживаться через TLS. Неспособность использовать
TLS для целевой страницы входа в систему позволяет злоумышленнику изменить имя входа
действие формы, в результате чего учетные данные пользователя будут опубликованы на
произвольное местоположение.
По сути, MITM может изменить страницу, которую вы используете, на сервер, на котором поле входа в систему, чтобы заменить его своим: пользователь не сможет заметить разницу (по крайней мере, пока не станет слишком поздно).
Вторая проблема заключается в том, что на самом деле хорошо видеть, что вы подключились (а также собираетесь подключиться для следующего шага) к нужному веб-сайту в адресной строке. Любой может иметь действительный https://
сайт: mybank.example.com
и attackers.example.com
могут иметь действительный сертификат, выданный доверенным органом.
Если я подключаюсь к своему банку, я хочу знать, что к моему банку я подключен по HTTPS. Отправка учетных данных на сайт https://
из всплывающего окна или из фрейма скрывает настоящий целевой веб-сайт.
Эта проблема также может возникать, когда начальная страница обслуживается по протоколу HTTPS, как, к сожалению, продемонстрировала система 3-D Secure (эти люди должны знать лучше, действительно!).
Короче говоря, не используйте iframe или всплывающее окно, а обслуживайте страницу, где вы представляете форму входа через HTTPS.