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

Безопасно ли передавать учетные данные для входа в виде простого текста в 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,

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

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

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

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

HTTP сделано действительно легко

2 ответа

Решение

Нет. Их не увидят в пути, но они останутся в:

  • история браузера
  • логи сервера

Если это вообще возможно, используйте POST через 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. Когда-либо.

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

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

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

Да, но я бы не стал этого делать.

http://www.ourshop.com/resources/ssl_step1.html

Я бы не стал этого делать. Тот факт, что у вас есть "учетные данные для входа в систему", "обычный текст" и "безопасный" в одном предложении, вызывает красные флажки.

Если в вашем предложении не написано "Неправильно передавать учетные данные для входа в виде простого текста".

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