Вопрос

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

Или SSL-соединение является обязательным ?

Это было полезно?

Решение

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

Другие советы

<shameless plug> У меня есть сообщение в блоге , которое подробно описывается, как выглядит HTTP-запрос и как GET-запрос сравнивается с POST-запросом. Ради краткости, ПОЛУЧИТЕ:

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.

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

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

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

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

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

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

Это не безопасно. POST может быть обнаружен так же легко, как GET.

Нет ... POST недостаточно безопасен. SSL ОБЯЗАН.

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

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

Если вы используете дайджест-аутентификацию , то SSL является НЕ обязательно.

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

POST является открытым текстом.

Безопасное соединение обязательно.

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

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

При использовании POST значения по-прежнему отправляются в виде простого текста, если не используется SSL.

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

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

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

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

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

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

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

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

Пожалуйста, посмотрите эту замечательную статью:

Защита от вредоносных POST-запросов

https://perishablepress.com/protect-post-requests/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top