Должны ли пароли пользователя быть ограничены определенным набором символов или силой? - PullRequest
4 голосов
/ 25 июля 2011

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

Пример первый, заставляющий их использовать буквенно-цифровой пароль длиной> 8

Пример два, позволяя им использовать только буквенно-цифровые символы и некоторые специальные символы (например:! @ # $%).

Первый пример, очевидно, полезен для применения на конфиденциальном сайте, таком как банковское дело, но я не могу придумать вескую причину ограничить количество символов пароля пользователя. Пока строка очищается для SQL-инъекций, не должно иметь значения, что они используют символьно, верно?

EDIT

И, конечно, пароль хэшируется

Ответы [ 2 ]

3 голосов
/ 25 июля 2011

Пожалуйста, , не говорите, какие символы я не могу использовать в своих паролях.

Вы должны поддерживать полный диапазон кодовых точек Unicode впароли, за возможным исключением управляющих символов ASCII (\0 - \0x20).

Вы несете ответственность за то, чтобы любой нормальный символ работал в пароле, включая пробелы, кавычки и обратную косую черту.

Пароли не могут быть уязвимы для внедрения SQL, поскольку база данных никогда не должна видеть действительный пароль .Вы должны хешировать и солить ваши пароли, прежде чем они попадут в базу данных.(используйте bcrypt)


Минимальные требования к сложности являются обоюдоострым мечом.Если вам требуется пароль, который слишком сложен для запоминания вашим пользователям, они в конечном итоге запишут его где-то, а возможно, и где-то под рукой.
По крайней мере, вам потребуется 6 символов и как минимум два из A-Z, a-z, 0-9 или любой другой символ.

1 голос
/ 25 июля 2011

Внедрение SQL не должно иметь большого значения: вы должны его хэшировать до того, как он достигнет БД.На самом деле нет причин ограничивать набор символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...