Вызов HTTPS из HTTP через AJAX для входа - PullRequest
13 голосов
/ 29 сентября 2011

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

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

Ответы [ 2 ]

15 голосов
/ 29 сентября 2011

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

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

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

1 голос
/ 29 сентября 2011

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

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

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

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

...