2010-09-13 3 views
0

У меня есть страница с записями пароля, в которой мне нужно спросить у пользователя свой идентификатор пользователя, чтобы предоставить ему свой пароль из базы данных, и он работает, но что делать, если кто-либо вносит какие-либо ошибки Идентификатор пользователя.Проверить доступность идентификатора пользователя из базы данных

ответ

1

Вы должны сделать SELECT, чтобы проверить, существуют ли эти записи, и если это так.

1

Просто верните сообщение о том, что они ввели неправильный идентификатор пользователя.

0
SELECT * FROM users WHERE username = inputhere 

if (mysql_num_rows($result) > 0) 
{ 
    // found it 
} 
else 
{ 
    // doesn't exist 
} 

Это то, что вы искали?

1

Если вы спрашиваете, что вы будете делать, если они полностью дадут вам действительный идентификатор другого пользователя, я предполагаю, что вы делаете что-то совершенно небезопасное с восстановленным вами паролем (вы не просто показывая им пароль?) - большинство таких систем отправят вам по электронной почте пароль, по крайней мере, обеспечив безопасность, которую только пароль будет иметь только связанная учетная запись электронной почты.

2

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

Я бы рекомендовал вам отобразить сообщение о том, что на адрес электронной почты для этой учетной записи отправлено электронное письмо с инструкциями по сбросу пароля (который включает в себя ключ, чувствительный к времени, необходимый для сброса), независимо от того, ID был найден в системе или нет. Если они не получают электронную почту, они всегда могут попробовать снова (предполагая, что первая попытка включала опечатку в ID пользователя). Если они действительно не знают свой Идентификатор пользователя, может быть другая форма для восстановления, введя свой адрес электронной почты (ведет себя аналогично этой форме, всегда демонстрируя успех в форме и просто отправляя электронное письмо там, где это применимо).

2

Вы должны выполнить следующие 3 шага, чтобы обеспечить надежную защиту.

1) На основе идентификатора пользователя извлекается информация пользователя из базы данных. Если информация равна нулю, отправьте пользователю ошибку, указав недействительный UserId.

2) a) Если у вас есть регистрация EmailId во время создания пользователя, отправьте пароль на зарегистрированное письмо. b) Если у вас нет регистрации EmailId, задайте и сопоставьте вопрос безопасности, выбранный во время регистрации пользователя.

3) Если возможно, попробуйте объединить a) & b) пункты 2) для повышения безопасности.

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