Достаточно ли безопасен POST для отправки учетных данных?
Или подключение SSL обязательно?
Достаточно ли безопасен POST для отправки учетных данных?
Или подключение SSL обязательно?
SSL является обязательным.
Метод POST не более безопасен, чем GET, поскольку он также отправляется по сети в незашифрованном виде.
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 или зашифровать данные перед POST. Другой вариант - использовать дайджест-аутентификацию в браузере (см. RFC 2617). Помните, что (домашнего) шифрования недостаточно для предотвращения атак повторного воспроизведения, вы должны объединить одноразовый номер и другие данные (например, область) перед шифрованием (см. RFC 2617, чтобы узнать, как это делается в Digest Auth).
SSL обязательно :)
HTTP Post передается в виде обычного текста. Например, загрузите и используйте Fiddler для просмотра HTTP-трафика. Вы можете легко увидеть там весь пост (или через монитор сетевого трафика, такой как WireShark).
Это не безопасно. POST можно обнюхать так же легко, как и GET.
Нет ... POST совсем не безопасен. SSL НЕОБХОДИМ.
POST эффективно скрывает только параметры в строке запроса. Эти параметры по-прежнему может получить любой, кто просматривает трафик между браузером и конечной точкой.
Самый безопасный способ - вообще не отправлять учетные данные.
Если вы используете дайджест-аутентификацию, то SSL НЕ обязателен.
(NB: я не имею в виду, что дайджест-проверка подлинности через HTTP всегда более безопасна, чем использование POST через HTTPS).
POST - это открытый текст.
Безопасное соединение является обязательным.
Вот почему это называется безопасным соединением.
Сам по себе запрос POST небезопасен, потому что все данные «перемещаются» в виде обычного текста.
Вам нужен SSL, чтобы сделать его безопасным.
Нет, используйте SSL.
При использовании POST значения по-прежнему передаются в виде обычного текста, если не используется SSL.
Единственная разница между HTTP GET и HTTP POST - это способ кодирования данных. В обоих случаях он отправляется в виде обычного текста.
HTTPS является обязательным, чтобы обеспечить какую-либо безопасность для учетных данных.
Вам также не нужен дорогой сертификат для обеспечения HTTPS. Есть много провайдеров, которые выдают очень простые сертификаты примерно за 20 долларов США. Более дорогие включают проверку личности, которая больше беспокоит сайты электронной коммерции.
Данные POST отправляются в виде обычного текста, если вы используете незашифрованное HTTP-соединение. ЕСЛИ это достаточно безопасно, зависит от вашего использования (подсказка: это не так).
Если и сервер, и клиентская машина, и ВСЕ МАШИНЫ МЕЖДУ НИМИ являются частью управляемой, полностью доверенной сети, это может быть нормально.
Вне этих очень ограниченных обстоятельств (а иногда даже в них) аутентификация с использованием обычного текста вызывает проблемы.
Пожалуйста, прочтите эту замечательную статью:
Защита от вредоносных запросов POST
https://perishablepress.com/protect-post-requests/