Какое сообщение об ошибке лучше, когда пользователи ввели неправильный пароль?

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

неверное имя пользователя или пароль.

Неправильный пароль.

например, когда вы вводите неправильный пароль на Gmail.com, он скажет вам: "имя пользователя или пароль, которые вы ввели, неверны". Есть ли какие-либо соображения по соображениям безопасности? Я думаю, что сообщение об ошибке: "пароль неверно" более понятно пользователям, и, более того, очень легко проверить, существует ли имя пользователя на Gmail.com: просто нажмите " Не удается получить доступ к учетной записи?"и введите имя пользователя. Если имя пользователя не существует, оно сообщит вам.

5 ответов


идея состоит в том, чтобы не давать хакерам дополнительную информацию. Если вы говорите неправильный пароль, Вы сказали хакеру, что у него есть правильное имя пользователя, и наоборот. Хотя то, что вы сказали, верно, на некоторых сайтах можно определить, угадали ли вы имя пользователя другими способами.


самая простая и наиболее распространенная фраза для использования:

"вы ввели неверное имя пользователя или пароль"

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

однако, если вы предоставляете общее сообщение, подобное приведенному выше, злоумышленник не знает, если пользователь, пароль или комбинация обоих правильны или нет.

Фабио @ fcerullo


просто добавляю дополнительную информацию. Рекомендации OWASP дают вам рекомендации по этой проблеме

https://www.owasp.org/index.php/Authentication_Cheat_Sheet#Authentication_and_Error_Messages

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


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

в контексте GMAIL, вероятно, gmail не хочет, чтобы люди добывали существующие адреса электронной почты для использования спам-роботами.

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


Ну, с другой точки зрения, с точки зрения безопасности, эти два сообщения не сильно отличаются. По крайней мере, для сайтов, разрешающих регистрацию. Хакер всегда может перейти на страницу регистрации и попытаться зарегистрироваться с указанными деталями. Конечно, ваш сайт, который изначально был защищен неоднозначностью, сразу же закричит: "Это имя пользователя!"и это будет выглядеть так, как будто безопасность-это миф.