Подтвердить что ты не робот

Насколько безопасно HTTP POST?

Достаточно ли POST достаточно для отправки учетных данных?

Или соединение SSL должно?

4b9b3361

Ответ 1

SSL является обязательным. POST не более безопасен, чем GET, поскольку он также отправляет незашифрованные. SSL будет охватывать всю HTTP-связь и шифровать передачу данных HTTP между клиентом и сервером.

Ответ 2

<shameless plug> У меня есть сообщение в блоге, в котором подробно описано, как выглядит HTTP-запрос, и как запрос GET сравнивается с запросом POST. Для краткости, GET:

GET /?page=123 HTTP/1.1 CRLF
Host: jasonmbaker.wordpress.com CRLF
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1 CRLF
Connection: close CRLF

и POST:

POST / HTTP/1.1 CRLF
Host: jasonmbaker.wordpress.com CRLF
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1 CRLF
Connection: close CRLF
CRLF
page=123

(CRLF - это просто новая строка)

Как вы можете видеть, единственные различия с точки зрения формирования запроса * заключается в том, что запрос POST использует слово POST, а данные формы отправляются в теле запроса по отношению к URI. Таким образом, использование HTTP POST - это безопасность безвестности. Если вы хотите защитить данные, вы должны использовать SSL.

* Обратите внимание, что являются другими отличиями.

Ответ 3

Это зависит от ваших обстоятельств, сколько бы перехват учетных данных стоил кому-то?

Если это просто логин для сайта Q + A для программного обеспечения, тогда SSL может не понадобиться, если это сайт онлайн-банкинга или вы храните данные кредитной карты, то это так. Это бизнес, а не техническое решение.

Ответ 4

HTTP POST не зашифрован, он может быть перехвачен сетевым сниффером, прокси-сервером или просочился в журналы сервера с настраиваемым уровнем ведения журнала. Да, POST лучше, чем GET, поскольку данные POST обычно не регистрируются прокси-сервером или сервером, но это не безопасно. Чтобы защитить пароль или другие конфиденциальные данные, вы должны использовать SSL или шифровать данные перед POST. Другим вариантом будет использование Digest Authentication с браузером (см. RFC 2617). Помните, что для предотвращения повторных атак недостаточно (для дома) шифрования, вы должны конкатенировать nonce и другие данные (например, realm) до шифрования (см. RFC 2617, как это делается в Digest Auth).

Ответ 5

SSL является обязательным:)

HTTP-сообщение передается в виде простого текста. Например, загрузите и используйте Fiddler для просмотра HTTP-трафика. Вы можете легко увидеть всю запись там (или через монитор сетевого трафика, например WireShark).

Ответ 6

Это не безопасно. POST можно обнюхивать так же легко, как GET.

Ответ 7

Нет... POST недостаточно безопасен. SSL является ДОЛЖНЫ.

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

Ответ 8

Самый безопасный способ - не отправлять учетные данные вообще.

Если вы используете Digest Authentication, тогда SSL НЕ a должен.

(NB: я не подразумеваю, что проверка дайджеста по HTTP всегда более безопасна, чем использование POST через HTTPS).

Ответ 9

POST - открытый текст.

Защищенное соединение является обязательным.

Вот почему он назвал безопасное соединение.

Ответ 10

Нет, используйте SSL.

С POST значения все равно передаются как обычный текст, если не используется SSL.

Ответ 11

Единственная разница между HTTP GET и HTTP POST - это способ кодирования данных. В обоих случаях он отправляется как обычный текст.

Чтобы обеспечить какую-либо безопасность учетных данных для входа, HTTPS является обязательным.

Вам не нужен дорогой сертификат для предоставления HTTPS. Есть много провайдеров, которые выдадут очень простые сертификаты примерно за 20 долларов США. Более дорогие включают проверку подлинности, которая больше беспокоит сайты электронной коммерции.

Ответ 12

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

Вам нужен SSL, чтобы он был безопасным.

Ответ 13

Данные POST отправляются простым текстом, если вы используете незашифрованное HTTP-соединение. ЕСЛИ это достаточно безопасно, зависит от вашего использования (подсказка: нет).

Если сервер, клиентская машина и ВСЕ МАШИНЫ МЕЖДУ ИХ являются частью контролируемой, полностью доверенной сети, это может быть нормально.

Вне этих очень ограниченных обстоятельств (а иногда даже и внутри них) обычная текстовая аутентификация требует неприятностей.

Ответ 15

Зависит от того, где вы его используете и насколько безопасно вам действительно нужно.

У кого-то нет способа получить данные POST, которые вы отправляете из своего дома, если вы не используете прокси (TOR), или кто-то нажимает на ваши провода.

Однако, если вы обеспокоены тем, что кто-то войдет в систему, используя беспроводную незащищенную сеть, важно ssl.

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