В чем разница между шифрованием GET и POST?

в чем разница при шифровании данных GET и POST? Thx для ответа

Edit: мне нужно написать его более конкретно.

когда https-SSL шифрует оба этих метода, в чем разница в том, как браузер делает это. Какие части зашифрованы, а какие нет? Я где-то читал, что URL-адрес назначения не зашифрован в POST, это правда? Если это правда и то же самое в GET, где все параметры?

Edit2: еще не знаю ответа на мой вопрос. Когда оба метода зашифрованы одними и теми же данными, выглядит ли это одинаково при обнюхивании? Какие части зашифрованы, а какие нет?

5 ответов


GET данные добавлен к URL как строка запроса:

https://example.com/index.html?user=admin&password=whoops

поскольку данные добавляются к URL-адресу, существует жесткий предел объема данных, которые вы можете передать. Различные браузеры имеют разные ограничения, но у вас начнутся проблемы с отметкой 1KB-2KB.

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

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

С Google Обсуждение:

данные, содержащиеся в URL-адрес запроса соединение HTTPS зашифровано. Однако это очень плохая практика, чтобы включают такие конфиденциальные данные, как пароль в запросе "GET". В то время как он не может быть перехвачен, данные будет записываться в открытый текст serverlogs на получающем HTTPS сервера, и вполне возможно, также в история браузеров. Это, вероятно, также доступно для плагинов браузера и возможно, даже другие приложения на клиентский компьютер.

всегда использовать POST over Протоколу HTTPS Если вы хотите безопасно передавать информацию.

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

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


когда выполняется запрос HTTPS GET, параметры строки запроса ЗАШИФРОВАНЫ! Единственное, что не зашифровано в запросе HTTPS, - это имя сервера или IP-адрес и порт запроса. Это только две части информации, необходимые для маршрутизации запроса из Вашего браузера на веб-сервер, который затем выполняет расшифровку.

использовать Саша (с отключенной расшифровкой SSL) и посмотрите на свой трафик с защищенным сайтом. Вы увидите, что вы не можете просматривать незашифрованные данные строки запроса или даже путь.


разница в том, что зашифрованный параметр, который отправляется с GET verb, будет виден в адресной строке, а тот, который отправляется с POST verb, не будет (конечно, это не означает, что пользователь не может видеть зашифрованное значение). Другое различие заключается в разрешенной максимальной длине: запросы GET ограничены, поскольку URL-адреса ограничены в браузерах. Третье отличие: запросы GET регистрируются на промежуточных веб-серверах, которые они транзитируют (web, proxy,...) поэтому, если вы используете GET over the internet, зашифрованный параметр определенно будет зарегистрирован на многих компьютерах, прежде чем он поступит на ваш веб-сервер.


POST может отправлять больше данных, чем GET

GET проще для злонамеренного пользователя манипулировать данными

GET не зашифрован

сообщение не зашифровано


Это может помочь, если вы визуализируете HTTP запрос:

GET /page.php?get-data-here HTTP/1.1
Host: www.site.com

post-data-here

все это зашифровано при использовании HTTPS.