2012-01-17 6 views
4

У меня есть форма входа в систему, которая скрыта на каждой странице и отображается при необходимости, когда нужно, вместо того, чтобы устанавливать новый запрос страницы.Безопасное появление всплывающего окна?

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

Есть ли способ сделать всплывающее окно регистрации безопасным без создания всего сайта https?

+0

Я думаю, что это возможно. Вы можете попробовать использовать функцию javascript, которая открывает всплывающее окно входа с адресом HTTPS. – user824294

ответ

4

Использование AJAX всплывающее (или IFRAME), который идет (в теории) к https:// на http:// странице вр две проблемы:

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

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.

2

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

+0

Какой из этих двух вариантов вы бы выбрали? Я бы предположил, что оболочка SSL замедлит работу, и iframe добавит bloat ... – chris

+0

Если ваш сценарий динамически вводит iframe при нажатии на него для всплывающего окна, это не будет увеличивать накладные расходы. –

+0

Я бы согласился с этим. Iframe следует избегать **, если это возможно, для защищенных соединений. – user824294

1

Если начальный запрос обслуживается HTTP, и вы используете тот же канал для предоставления ссылок/форм HTTPS и т. Д., Злоумышленник просто изменит этот HTTPS на HTTP.

Это было продемонстрировано Firesheep

Что вы можете сделать, это служить HTTPS образуют через HTTP, но позволяют HTTP Strict Transport Security

Конечно, я предполагаю, что вы будете иметь связь как https://login.site.com, который будет подан по http://www.site.com ... Таким образом, вы должны создать сертификат SSL только для суб-сайта/один виртуальный хост

+0

Что вы подразумеваете под этим «злоумышленник просто изменит этот HTTPS на HTTP»? – Gumbo

+0

злоумышленник будет использовать любой из инструментов Man In Middle для обмена HTTPS с помощью HTTP – gauravphoenix

Смежные вопросы