Почему они не говорят "ваш пароль неверный"? - PullRequest
2 голосов
/ 20 марта 2012

Большинство веб-сайтов говорят «неправильный логин или пароль» всякий раз, когда мы вводим неправильный пароль.Почему они не говорят "ваш пароль неверный"?

Ответы [ 4 ]

7 голосов
/ 20 марта 2012

Так что, если кто-то пытается угадать действительное имя пользователя и пароль, ему не говорят «Да, вам удалось угадать действительное имя пользователя».Это может или не может быть полезным для любого сайта, если имена пользователей видны другими способами.

4 голосов
/ 20 марта 2012

Просто игнорируйте проблему безопасности, говоря «Ваш пароль неверный».Сначала мы можем проверить, можно ли сказать «Ваш пароль неверный».

Я разместил этот вопрос в нашей группе колледжей и чувствовал, что один ответ от группы стоит задать здесь.

Веб-сайт может сказать, что «ваш пароль неверен», только если веб-сайт уверен, что вы правильно ввели свое имя пользователя.Как веб-сайт узнает, что вы правильно ввели свое имя пользователя?Это невозможно узнать.

Ошибка аутентификации может быть вызвана тремя способами:

  1. Вы можете ввести правильное имя пользователя, но неверный пароль.
  2. Вы можете ввести правильный пароль, но неверное имя пользователя.
  3. Вы можете ввести неправильное имя пользователя и пароль.

Сайт обрабатывает его, как указано ниже.

a .Если имя пользователя отсутствует в базе данных, веб-сайт не может сказать, что «Ваше имя пользователя неверно».Поскольку веб-сайт не знает, является ли введенный вами пароль правильным, то есть веб-сайт может сказать: «Имя пользователя или пароль неверны».только.

b .Если имя пользователя находится в базе данных, веб-сайт не может сказать, что «Ваш пароль неверный».Поскольку веб-сайт не знает, является ли введенное вами имя пользователя правильным.Таким образом, сайт может сказать: «Имя пользователя или пароль неверны»только.

1 голос
/ 20 марта 2012

Помимо безопасности, он также может быть «ленивым» выбором дизайна.Зачем беспокоиться о том, чтобы отдельно проверять, неверно ли имя пользователя или пароль? Когда вы можете просто написать один запрос и вывести, был ли он успешным или нет, в конечном итоге пользователь сам узнает, ошибся он или нет.

0 голосов
/ 20 марта 2012

Также можно быть уверенным в лени или чистоте кода.Простой пример ниже.

If( password != submittedpw || username != submittedusername)
{
    Print 'username and or password is wrong';
}

Выше намного быстрее, чем

if (password != submittedpw)
{
    Print 'password is wrong';
}
elseif (username != submittedusername)
{
    print 'username is wrong';
}
...