2010-12-14 1 views
3

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

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

Любые идеи?

ответ

2

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

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

0

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

0

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

Для иллюстрации в следующей таблице приведен обзор типичных результатов для проверок по URL-адресу «».

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:[email protected]/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 не включает порт в расчете координат, используя зоны безопасности на своем месте.


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

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


Если вы на самом деле, что делать, что это возможно, но вы должны убедиться, что ваш public key certificate вашего веб-сайта был верным ified certification authority поэтому действительно.

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

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

Другие способы обхода включают добавление правила перезаписи путем перенаправления незащищенного трафика в 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] 

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

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

  • Нет связанных вопросов^_^