Безопасный домен (HTTPS) полностью необходим для входа на страницу?

Похоже, что большинство основных веб-сайтов будут использовать безопасный домен, но есть несколько основных исключений, в частности, facebook и twitter.

Преимущества использования безопасного домена очевидны. Я полагаю, что ваши учетные данные никогда не передаются в виде простого текста.

Итак, как основные сайты, такие как facebook и твиттер, уйти от него? Если по какой-либо причине безопасный домен недоступен, какие дополнительные меры предосторожности вы можете предпринять?

Ответ 1

Если безопасность вообще важна: Да, страница входа должна быть https, как и страница, на которую она отправляется. Другого пути просто нет.

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

Ответ 2

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

Посмотрите на действие:

// facebook
<form method="POST" action="https://login.facebook.com/login.php?login_attempt=1" id="login_form">

// twitter
<form method="post" id="signin" action="https://twitter.com/sessions">

В этом случае для формы "действие" установлено использование https и рукопожатие ssl происходит до отправки любых данных, чтобы соединение было безопасным. (Независимо от того, отображается ли исходная форма с использованием https). Однако, если в действии формы использовался относительный путь, то по умолчанию будет использоваться протокол, который использовался для отображения формы. В нижней строке вы должны использовать абсолютный URL-адрес, если хотите установить сеанс SSL перед отправкой своих учетных данных.

Ответ 3

Скорее всего, я заберусь, но ответ на это "полностью необходим", правильный ответ действительно не должен быть. В большинстве случаев это не имеет большого значения. Даже hotmail.com и другие крупные сайты имеют незашифрованные знаки в процессах, некоторые требуют, чтобы вы нажали ссылку, чтобы перейти на страницу https.

Это действительно зависит от того, что вы обеспечиваете. Данные HIPPA, финансовая информация да полностью необходимы. Стандартный форум или другой сайт, на самом деле не имеет значения.

Выполнение человека в средней атаке также не является событием trival, это действительно больше беспокоит враждебные сети (например, WIFI/школьные сети/и т.д.), а не сам Интернет. В основном невозможно выполнить живого человека в средней атаке на самом веб-сайте без ущерба для корневого DNS-сервера. Межсайтовый скриптинг - это гораздо больше реального вектора атаки, в отличие от человека в середине, который действительно имеет цель попытаться выполнить против крупных банков.

Ответ 4

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

Я бы сказал, что какое-то шифрование должно быть обязательным для целей аутентификации. Что касается вопроса, да, HTTPS будет лучшим вариантом. Очевидно, что наиболее простой проверкой является панель местоположения вверху, если она начинается с "https://", но это на самом деле не имеет значения. Важно то, что ваша идентификационная информация (имя пользователя/пароль) отправляется, что может быть какой-то другой страницей через стандартные формы HTML или некоторые магии JavaScript. Лучший способ - проверить источник или включить предупреждения браузера относительно отправки незашифрованных данных.

НТН

Ответ 5

Я не уверен, какие методы обычно используются, но любая информация, которая не сохраняется и только сравнивается (например, имя пользователя и пароль), может быть хеширована (например, SHA1 или MD5) на клиенте.

Однако для этого требуется сценарий на стороне клиента, который может быть отключен или иным образом недоступен. Просто может быть, что некоторые сайты не считают свою информацию достаточно чувствительной, чтобы требовать безопасной передачи (вы не должны отправлять какую-либо конфиденциальную информацию в Facebook или Twitter и т.д.).