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 и поэтому должны быть зашифрованы.