Безопасно ли передавать учетные данные для входа в виде простого текста в URL-адресе HTTPS? - PullRequest
13 голосов
/ 30 июня 2010

Безопасно ли передавать учетные данные для входа в виде обычного текста в URL-адресе HTTPS?

https://domain.com/ClientLogin?Email=jondoe@gmail.com&Passwd=123password

Обновление: Итак, допустим, это не вводится вбраузер, но генерируется программно и запрашивается с помощью запроса POST (а не запроса GET).Это безопасно?

Решение:

Использование этого типа URL-адреса в запросе GET небезопасно (т.е. ввод URL-адреса в браузер), так как запрошенный URL-адрес будет сохранен.в истории браузера и журналах сервера.

Однако безопасно отправлять POST запрос в https://domain.com/ClientLogin (т. Е. Отправлять форму) при передаче учетных данных в составе POST body, поскольку POST body шифруется и отправляетсяпосле подключения к запрошенному URL.Таким образом, действие формы будет https://domain.com/ClientLogin, а значения поля формы будут переданы в POST body.

Вот несколько ссылок, которые помогли мне лучше понять это:

Ответ на StackOverflow Вопрос: Зашифрованы ли URL-адреса https?

Прямое объяснение SSL и HTTPS

Ответы Google: HTTPS - это сама строка URL-адреса безопасна?

HTTP Made Really Easy

Ответы [ 2 ]

16 голосов
/ 30 июня 2010

Нет. Они не будут видны при транспортировке, но они останутся в:

  • история браузера
  • журналы сервера

Если это вообще возможно, используйте POST over HTTPS при аутентификации, а затем установите «аутентифицированный» cookie, или используйте HTTP Digest Authorization через HTTPS, или даже HTTP Basic auth через HTTPS - но что бы вы не делалипоместите секретные / конфиденциальные данные в URL.

Редактировать: когда я писал «использовать POST», я имел в виду «отправлять конфиденциальные данные через HTTPS в полях POST».Отправка POST http://example.com/ClientLogin?password=hunter2 абсолютно не так, как отправка его с помощью GET.

TL; DR: Не вводите пароли в URL.Когда-либо.

1 голос
/ 30 июня 2010

Передача информации для входа в систему в параметрах URL небезопасна, даже с использованием SSL

Передача информации для входа в систему в теле POST с использованием SSL считается безопасной.

Если вы используете SSL, рассмотрите HTTP Basicаутентификация.Хотя без SSL это ужасно проблематично, оно не хуже POST с учетными данными, но достигает того, что вы хотите, но делает это в соответствии с установленным стандартом, а не с именами пользовательских полей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...