Модальная диалоговая форма JQuery для отправки данных через https - PullRequest
4 голосов
/ 14 декабря 2010

У меня уже работает модальное диалоговое окно входа.Проблема в том, что если исходная страница загружается через http, я все еще хочу передать учетные данные на сервер через https.И, конечно, я хочу сделать как можно меньше переписывания рабочего кода.

Я не могу использовать JSONP для моего случая, поскольку данные для входа в систему передаются на сервер через запрос POST AJAX.Есть идеи?

Ответы [ 3 ]

2 голосов
/ 14 декабря 2010

Одна и та же политика происхождения делает это невозможным (по крайней мере, в браузерах, которые не поддерживают междоменный XHR, что достаточно).

(А поскольку хост-документ обслуживается по HTTP, он может быть перехвачени изменение на проводе, которое сделало бы данные уязвимыми, даже если они были переданы по SSL)

0 голосов
/ 02 июля 2014

Обратите внимание, что в соответствии с политикой того же происхождения это не должно быть возможным, поскольку вы пытаетесь опубликовать незащищенные учетные данные на защищенной странице. И если целевая страница входа в систему не использует SSL, то злоумышленник может изменить страницу, когда она отправляется пользователю, и изменить местоположение отправки формы или вставить JavaScript, который крадет имя пользователя / пароль при вводе. Поэтому для входа на целевую страницу необходимо использовать SSL.

Для иллюстрации в следующей таблице приведен обзор типичных результатов проверки по URL-адресу "http://www.example.com/dir/page.html".

Compared URL                              Outcome   Reason
http://www.example.com/dir/page2.html     Success   Same protocol and host
http://www.example.com/dir2/other.html    Success   Same protocol and host
http://u:pass@www.example.com/x/o.html    Success   Same protocol and host
http://www.example.com:81/dir/other.html  Failure   Same protocol and host but different port
https://www.example.com/dir/other.html    Failure   Different protocol
http://en.example.com/dir/other.html      Failure   Different host
http://example.com/dir/other.html         Failure   Different host (exact match required)
http://v2.www.example.com/dir/other.html  Failure   Different host (exact match required)
http://www.example.com:80/dir/other.html  Depends   Port explicit. Depends on implementation in browser.

В отличие от других браузеров, Internet Explorer не включает порт в расчет источника, используя вместо него Зону безопасности.


Как смягчить политику того же происхождения

В некоторых случаях политика одного и того же происхождения слишком ограничительна, что создает проблемы для крупных веб-сайтов, которые используют несколько поддоменов. Вот четыре метода расслабления:


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

Если это не так, вы можете попытаться добавить свой сертификат в белый список в вашем веб-браузере. Или попробуйте использовать другие веб-браузеры.

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

Другие обходные пути включают добавление правила перезаписи путем пересылки незащищенного трафика в ssl, например,

# Various rewrite rules.
<IfModule mod_rewrite.c>
  RewriteEngine on
  # Force <front> to ssl for modal use of secure log in module.
  RewriteRule http://www.example.net/^$ https://www.example.net [R=301,L]

Смотри также:

0 голосов
/ 14 декабря 2010

Просто из любопытства, почему бы вам не заставить пользователя зайти на защищенную страницу? Почему у нас была похожая проблема некоторое время назад, поэтому теперь мы заставляем пользователей https (через перенаправление), как только они попадают на нашу страницу.

...