2012-10-03 3 views
2

Когда пользователь создает учетную запись, ему присваивается идентификатор пользователя из уникальной и автоматически увеличивающейся базы данных. Таким образом, у первого пользователя есть идентификатор пользователя 1, второй созданный пользователь имеет идентификатор пользователя 2 и т. Д. Я использую сеансы PHP для хранения идентификатора пользователя, когда они вошли в систему, чтобы они остались в состоянии входа. После прочтения нескольких статей я понял, что вы никогда не хотите, чтобы сеансы PHP были такими же уязвимыми, как я сделал это (это легко для хакера, чтобы определить, какой идентификатор пользователя php session принадлежит каждому пользователю. Поэтому мой вопрос: если я должен был использовать md5 или blowfish на основе их уникального имени пользователя для генерации идентификатора пользователя для каждого пользователя, это сделает сеансы PHP безопасными?Сохранение сессий PHP Secure

+3

PHP сессии генерировать свои собственные идентификаторы и все для вас. Вам ничего не нужно делать поверх этого. Если вы просто сохраняете идентификатор в данных сеанса, проблем нет. Если вы переопределяете идентификатор сеанса по умолчанию, это другая история ... и огромная проблема. – Brad

+0

Я сохраняю идентификатор, захваченный из базы данных, связанной с этим пользователем, в сеанс. Поэтому '$ session ['user_id']' ссылается на идентификатор пользователя, захваченный из базы данных. – jason328

+0

Тогда нет проблем с вашей реализацией. – Brad

ответ

1

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

session_start(); 
$newsessid = somerandomnumberfunction(); 
session_id($newsessid); 

вы также можете использовать session_regenerate_id() для генерации пе W ID

session_start(); 
session_regenerate_id(); 

Хорошо читать

PHP Session Security

PHP Security Guide: Sessions

+1

Хотя это не напрямую отвечает на мой вопрос, и с тех пор оно было решено в комментариях, я дам вам кредит на ответ. Плюс, я думаю, что мой вопрос был немного неоднозначным, поэтому ваш ответ будет иметь смысл, если вы прочтете его так, как я думаю, вы его прочитали. – jason328

Смежные вопросы