С HTTPS, являются ли URL и заголовки запросов защищенными как тело запроса?

Просто хочу проверить, когда вы делаете SSL-соединение (http post), чтобы сказать:

https://www.example.com/some/path?customer_key=123123123 

Если вы не хотите, чтобы кто-нибудь знал о client_key, этот подход не будет работать, даже если я правильно установил https-соединение?

Все данные, которые я хочу получить, должны быть в теле запроса?

Цитирование HTTPS RFC :

Когда завершение рукопожатия TLS завершено. Затем клиент может инициировать первый HTTP-запрос. Все HTTP-данные ДОЛЖНЫ быть отправлены как данные приложения TLS.

По сути, сначала создается безопасный канал SSL / TLS. Только тогда используется HTTP-протокол. Это защитит весь HTTP-трафик с помощью SSL, включая заголовки HTTP (которые содержат URL-адрес и cookies).

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

При использовании имени имени сервера имя запрашиваемого хоста также должно быть видимым в расширении ClientHello сообщении ClientHello . В противном случае может быть некоторая неопределенность (для подслушивающего устройства), чтобы угадать имя хоста из сертификата, если сертификат действителен для нескольких имен узлов (например, несколько объектов Alt. Имена или подстановочные знаки). В этом случае подслушивание запроса DNS от клиента может дать злоумышленнику ключ.

Читая ответы и комментарии других людей, некоторые упоминают о проблемах с Referer (потеряли r в спецификации) и журналы.

  • Отправляющие не должны отправляться при переходе с HTTPS на HTTP (но они часто отправляются при переходе с одного сайта HTTPS на другой сайт HTTPS) .
  • Об истории: вам просто нужно доверять тому, кто может потенциально получить этот ключ законно (т.е. ваши пользователи), чтобы не распространять его. Если необходимо, имейте страtagsю поменять его время от времени.
  • О журналах: Я предполагал, что вы после защиты по сети . URL-адрес (включая запрос) будет действительно в журналах, но если кто-то может атаковать ваш компьютер, чтобы получить журналы, вам больше нужно беспокоиться о том, что ваши ключи приложения.

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

РЕДАКТИРОВАТЬ:

Кроме того, если вы используете аутентификацию сертификата клиента, сертификат клиента будет виден, если он будет согласован во время первоначального рукопожатия. Это может привести к утечке имени пользователя, обратившегося к веб-сайту (часто Subject DN содержат имя пользователя). Сертификат клиента не будет виден, если он будет отправлен во время согласованного подтверждения.

Только www.example.com будет отображаться для snoopers. Раздел пути запроса защищен SSL / TLS.

Очевидно, что вам также нужно отправить оригинальную гиперссылку HTTPS.

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

SSL – это защищенный оболочкой канал поверх ваших данных. Если данные просты, любой, кто может взломать SSL, может четко видеть ваши данные.

Пересмотр моего ответа НЕТ! По-видимому, только имя хоста отправляется в ясном тексте до того, как будет установлено соединение SSL.

http://answers.google.com/answers/threadview/id/758002.html

Это зависит..

Если вы используете пакетный снифер, вы не можете видеть данные, отправленные по проводу. Основная проблема с этим подходом заключается в том, что URL-адрес запроса часто сохраняется в журнале сервера в виде обычного текста, история браузера сохраняет URL-адрес, URL-адреса передаются в заголовках Referrer и, возможно, сохраняются сторонними службами (google analytics).

  • Безопасно ли использовать $ .support.cors = true; в jQuery?
  • Лучший способ ограничить доступ по IP-адресу?
  • Что должен знать каждый программист о безопасности?
  • Как сервер станет уязвимым с помощью chmod 777?
  • Как получить местоположение cacerts стандартной java-установки?
  • Являются ли HTTP-cookies конкретными?
  • SSO с CAS или OAuth?
  • Как безопасно хранить учетные данные (пароль) в приложении Android?
  • Mysqldump, запущенный cron и защита паролем
  • XMLHttpRequest не может загрузить файл. Запросы на кросс-начало поддерживаются только для HTTP
  • Объявление Spring Bean в контексте родительского контекста и дочернего контекста
  • Давайте будем гением компьютера.