Каков наилучший способ обеспечения безопасности через http - PullRequest
0 голосов
/ 17 апреля 2009

Я знаю, что использование SSL - один из способов сделать это. Я захожу на такие сайты, как Facebook и LinkedIn, и вижу, что они используют https только тогда, когда имеют дело с конфиденциальными данными, такими как пароли и личные настройки. Как это сделать? Как они могут реализовать https на некоторых веб-сайтах, используя http на других, при этом оставаясь безопасными, или они являются?

Ответы [ 4 ]

1 голос
/ 17 апреля 2009

Этот подход небезопасен. Что ж, это безопасно при использовании HTTPS, но после переключения на HTTP все данные передаются по незашифрованной линии. Файл cookie идентификатора сеанса (или сохраняется статус и идентификация пользователя). Таким образом, все еще есть пробел, чтобы украсть эту информацию в незашифрованной строке и попытаться выдать себя за вас.

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

0 голосов
/ 17 апреля 2009

Безопасность намного больше, чем просто HTTP / HTTPS. Это просто для того, чтобы данные не читались в сети.

Самый простой способ сделать HTTPS-запрос на HTTP-сайте - через форму, действие которой https://yoursite/login или что-то подобное. Это заставит вас перейти на эту страницу, и часто эти страницы возвращаются туда, откуда вы пришли, или перенаправляют вас на домашнюю страницу. Вот как это делает Facebook. Остальная часть сайта считается относительно безопасной из-за контроля доступа, который должен гарантировать, что только те, кто имеет разрешение на просмотр чего-либо, могут сделать это. Это не защищает от Wireshark или других инструментов, которые перехватывают трафик. Делать пост через ajax - плохая идея, потому что слишком легко использовать межсайтовый скриптинг, чтобы связываться с вызовом ajax.

0 голосов
/ 17 апреля 2009

Это зависит от того, что вы пытаетесь защитить, и сколько хлопот вы хотите для пользователя, если вы не используете https.

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

Вы можете посмотреть мой ответ здесь для одного способа сделать это в JavaScript: Как зашифровать данные постов при использовании ajax и JQuery?

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

Вы можете сделать все это в javascript, но это замедлит передачу данных.

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

0 голосов
/ 17 апреля 2009

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

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

Короткая версия: если вам нужна безопасность, используйте HTTPS. Вы даже можете получить бесплатный сертификат на таких сайтах, как CAcert .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...