HTTPS, URL-путь и строка запроса

Это последующий пост моего предыдущего вопроса о BASIC auth over HTTPS

Является ли путь к строке ресурса и запроса безопасно передан серверу, если я использую HTTPS?

т.е.
URI: http://server/path/to/a/resource?with=a&query=string
Сервер: сервер
путь:/путь/в/a/ресурс
строка запроса: с = a & query = string

Ответы

Ответ 1

Это действительно хорошее объяснение этого: http://answers.google.com/answers/threadview/id/758002.html#answer

Сводка: только хост и порт будут видны незашифрованными.

Короче говоря, да. Но вы не должны хранить конфиденциальные данные в URL-адресе, поскольку они могут быть видны в истории браузеров и в файлах сервера. И любой, кто смотрит через плечо, тоже это видит.

Ответ 2

Да, это - весь сеанс защищен и закодирован так, что все, что вы отправляете, включая строку запроса, нечитабельно.

Вы можете доказать это себе, если хотите, используя что-то вроде Fiddler, чтобы просмотреть трафик http/https, который вы генерируете, когда вы посещаете безопасный URL-адрес. Все, что вы отправляете по HTTPS, не будет показывать запрос, как показано ниже:

alt text

Фактический URL-адрес, который я посещал, выглядел так:

https://www.halifax-online.co.uk/_mem_bin/formslogin.asp?source=halifaxcouk&simigvis=

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

Ответ 3

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