#php #security #cookies
#php #Безопасность #файлы cookie
Вопрос:
Я хочу создать cookie ТОЛЬКО с именем пользователя. Я хочу, чтобы наша форма входа запоминала имя пользователя (если пользователь выберет), но им придется вводить свой пароль каждый раз.
Есть ли какой-либо риск просто иметь имя пользователя в cookie? Должно ли быть какое-либо шифрование имени пользователя?
Предложения?
Комментарии:
1. вы можете сделать, если пользователи используют с общедоступного компьютера
Ответ №1:
Хотя это не лучшее, что можно сделать, ответ на ваш вопрос заключается в том, что вы можете зашифровать и сохранить имя пользователя в cookie, прочитать и расшифровать во время выполнения
ЗАШИФРОВАТЬ:
base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($username), $salt, MCRYPT_MODE_CBC, md5(md5($username))));
РАСШИФРОВАТЬ
rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($username), base64_decode($salt), MCRYPT_MODE_CBC, md5(md5($username))), "");
Комментарии:
1. Почему при использовании функций mcrypt может выдаваться ошибка? Я использую PHP версии 5.2.6 — Неустранимая ошибка : вызов неопределенной функции mcrypt_encrypt ()
Ответ №2:
Пока этот cookie-файл никогда не предоставляет привилегии пользователю, это нормально с точки зрения безопасности. Файлы cookie могут быть легко подделаны, поэтому вы не хотите, чтобы созданные вручную файлы cookie позволяли кому-либо проникать в защищенные части сайта.
Это предоставляет некоторые доступные для прослушивания данные любому, кто случайно заглянет в файл cookie jar, которые могут иметь значение для вас и / или ваших пользователей, а могут и не иметь.
Комментарии:
1. Единственное назначение файла cookie — заполнить поле ввода имени пользователя при входе в систему. Оно не будет использоваться для аутентификации каким-либо образом, в какой-либо форме.
Ответ №3:
Я видел, как системы, такие как Moodle, делают это. Так что это не редкость. При этом есть риски, но опции на сайтах, подобных этому, стали обычным явлением.