Вызов HTTPS из HTTP через AJAX для входа

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

Итак, есть ли более безопасный способ внедрения входа в https через ajax?

Ответ 1

Он не только нарушает ту же политику происхождения, но поскольку страница, с которой вы звоните, небезопасна, она может быть помешана и утечка всех данных, которые вы пытаетесь сохранить.

Используйте HTTPS для всего процесса.

Еще лучше, продолжайте использовать HTTPS во время входа в систему, иначе у вас будет проблема Firesheep.

Ответ 2

Как мы уже говорили в комментариях ниже, это то, что делает Facebook для своей страницы регистрации, хотя есть некоторые уязвимости для этого метода. Хотя он не будет казаться безопасным для пользователя (без значка блокировки), фактический запрос выполняется через HTTPS. Если вы контролируете всю страницу приема, не будет ничего более безопасного в том, чтобы делать запрос JSONP через GET. Тем не менее, атака "человек-в-середине" может изменить страницу приема при загрузке и заставить возвращенные учетные данные быть отправлены злоумышленнику.

На стороне плюса, однако, никто, кто просто обнюхивает пакеты, не сможет получить учетные данные: атака должна быть довольно целенаправленной.

Что касается куки файлов, технически JSONP может "возвращать" куки; вы просто вернете пары имени и значения файлов cookie, которые хотите установить, и имейте функцию на получающей странице.

Но если браузер не рассматривает <script> по-другому, и он может, вы должны иметь возможность установить cookie обычным способом с использованием заголовков ответов вашего ответа JSONP.