Ответ 1
Запрашиваемый URL-адрес может отображаться в журналах веб-сервера и истории браузера/закладках, что не очень хорошо.
Вчера у коллеги и у меня начались жаркие дебаты, можно ли безопасно отправлять учетные данные через параметры URL в качестве средства аутентификации. Он правильно указал, что HTTPS шифрует все символы без имени/порта в URL-адресе перед отправкой запроса на серверную сторону.
Тем не менее, я все еще думаю, что здесь есть краевые случаи, где можно украсть эти учетные данные и полагать, что их следует отправлять через POST HTTPS. Действительно ли это безопасное средство отправки данных входа/токена?
Запрашиваемый URL-адрес может отображаться в журналах веб-сервера и истории браузера/закладках, что не очень хорошо.
Сделайте дополнительный шаг, если у вас есть база данных. Отправьте имя пользователя и пароль через сообщение формы, верните свой токен (проводник), напишите токен в таблицу базы данных и назначьте время истечения срока действия, а затем используйте этот токен в querystring вместо учетных данных, Теперь ваша система будет очень безопасной, и у вас будет уникальный идентификатор сеанса в качестве плюса.
Что касается передачи полномочий, он прав. Но есть много других вещей, которые нужно учитывать, например, история бриджей, серверные лог файлы, пользователи, смотрящие экран и т.д., Что было бы риском в этом случае.
Безопасное - это большое слово. SSH не позволит другим пользователям извлекать его, но действительно ли вы хотите показать кому-то пароль в строке запроса. А как насчет чувака, стоящего над плечами пользователей? Что такое SQL-инъекция? На самом деле, плохая идея, по крайней мере, уложите ее в сообщение формы.
Я понятия не имел, что HTTPS также зашифровал URL-адрес, это хорошо знать.
Однако с точки зрения безопасности меня будет больше беспокоить тот факт, что учетные данные можно прочитать в строке URL. Не говоря уже о возможно сохранении в истории браузера.
Есть и другое решение, которое я пытаюсь. Вы можете использовать обработчики PHP для сеанса, чтобы хранить данные сеанса непосредственно в вашей базе данных в виде строки легко с помощью своих обработчиков. Вам потребуется таблица сеансов в вашей БД с истечением срока действия. Как только вы отправляете данные входа в HTTPS, если это правильно, вы можете сохранить его в переменной $_SESSION, и если вы хорошо поработаете с интерфейсом, он перейдет в вашу БД. Поскольку это не отображается вне PHP, у вас будет надежная система входа в систему, а в клиентских файлах cookie есть ТОЛЬКО хранимый идентификатор сеанса, а не токены, учетные записи или другие конфиденциальные данные.
Ссылка: http://es.php.net/manual/en/function.session-set-save-handler.php