Безопасно ли передавать учетные данные для входа в виде простого текста в 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
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 с учетными данными, он достигает того, что вы хотите, но делает это в соответствии с установленным стандартом, а не с именами пользовательских полей.
Да, но я бы не стал этого делать.
Я бы не стал этого делать. Тот факт, что у вас есть "учетные данные для входа в систему", "обычный текст" и "безопасный" в одном предложении, вызывает красные флажки.
Если в вашем предложении не написано "Неправильно передавать учетные данные для входа в виде простого текста".