HTTPS, URL-адрес и строка запроса

Это продолжение моего предыдущего вопроса об ОСНОВНОЙ аутентификации через HTTPS

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

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

3 ответа

Решение

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

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

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

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

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

альтернативный текст

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

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

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

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

Другие вопросы по тегам