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

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

В своем вопросе вы говорите

, который определен на некотором интервале Реальной линии

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

n = 1e5
test = runif(n, min = 0, max = 5)
results = f(test) # sapply(test, f) if f isn't vectorized

# test for constancy
all(results == results[1]) # or all(diff(results) == 0) or however else

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

f3 = function(x) ifelse(x == 5.46512616432116, 0, 1)
11
задан Triptych 2 August 2009 в 03:40
поделиться

5 ответов

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

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

11
ответ дан 3 December 2019 в 07:13
поделиться

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

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

0
ответ дан 3 December 2019 в 07:13
поделиться

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

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

1
ответ дан 3 December 2019 в 07:13
поделиться

Извините за поздний пост, но я не знаю Не думаю, что кто-то выше обратился к ключевому элементу того, как это делают facebook и twitter. Основная часть заключается в том, что их форма входа без 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
ответ дан 3 December 2019 в 07:13
поделиться

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

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

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

2
ответ дан 3 December 2019 в 07:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: