Проверка правил для пароля в реальном времени? - PullRequest
1 голос
/ 12 мая 2011

Я делаю небольшое предварительное расследование для своей школы (я работаю в отделе информационных технологий как студент). Здесь студенты должны менять свои пароли каждые 6 месяцев, и многие из них борются с (многими) правилами паролей, которые применяются. То есть им часто приходится несколько раз пытаться установить новый пароль.

Правила таковы:

  • Должно быть не менее 8 символов длина
  • Должно содержать 3 из 4 типов символы (заглавные, строчные, номер, специальный символ)
  • Не должен содержать пользователя первым, фамилия или отчество
  • Не должен содержать имя пользователя
  • Не должен совпадать ни с одним используемым паролем. перед тем
  • Пользователь должен ввести пароль дважды, и набранные пароли должны точно соответствовать

У меня есть несколько вопросов:

  • Возможно ли создать веб-интерфейс проверка пароля, которая обеспечивает обратная связь в реальном времени по мере ввода пользователем в их новом пароле? я воображая контрольный список на одной стороне веб-страница, где зеленые галочки активируются при совпадении пароля больше критериев.
  • Возможно ли выполнить это проверка надежно и полностью на стороне клиента?
  • С чего начать такую ​​задачу? Вы можете порекомендовать руководство?

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

Ответы [ 5 ]

5 голосов
/ 12 мая 2011

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

Да.

Можно ли безопасно выполнить эту проверку

Поскольку индикаторы загораются зеленым светом, это предоставляет информацию о том, где в пароле выполняются требования. Это приведет к утечке данных о пароле любому, кто увидит экран.

и полностью на стороне клиента?

Да.

С чего начать такую ​​задачу?

Список правил в документе HTML с изображением FAIL рядом с каждым. Программные версии правил в JS. Затем просто проверяйте каждое правило по очереди в каждом событии нажатия клавиши на вводе пароля и меняйте местами изображения PASS и FAIL в зависимости от того, соблюдается ли правило или нет.

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

Пожалуйста, имейте в виду, что я не веб-разработчик.

Тогда я рекомендую вам получить или стать им.

Также, пожалуйста, оставляйте остроумные комментарии, такие как «изменить политику паролей»

Хорошо, оставив остроумие в стороне и придерживаясь серьезного вопроса:

Если у людей возникнут проблемы с паролями, соответствующими политике, у них будут проблемы с их запоминанием. Это приведет к увеличению числа людей, которым придется их перезагружать (больше работы для ИТ-отдела), и людей, которые их записывают (что, вероятно, будет менее надежным, чем пароль, который легче угадать / перебор).

2 голосов
/ 12 мая 2011

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

1 голос
/ 12 мая 2011
  • Не должен совпадать ни с одним паролем, использовавшимся ранее <- этот пароль является единственным, который должен быть выполнен на стороне сервера, но может быть выполнен безопасным способом с использованием хэшей или некоторой формы или шифрования, поскольку копия указанных паролей на стороне клиента не будет будь хорошим. </li>
1 голос
/ 12 мая 2011

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

Да, но для этого вам понадобится некоторый javascript.

Можно ли выполнить эту проверку безопасно и полностью на стороне клиента?

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

Я не хочу быть умником и говорить вам об изменении политики паролей, и делать это потому, что проверка будет «трудной», было бы плохим выбором, но я бы порекомендовал следующую статью тому, кто определил политику паролей: http://www.baekdal.com/tips/password-security-usability

0 голосов
/ 12 мая 2011

Регулярные выражения - это, вероятно, то, с чего бы вы хотели начать.Если вы не знакомы с regexp в области веб-разработки, я бы посоветовал вам начать здесь: http://www.w3schools.com/jsref/jsref_obj_regexp.asp. Если вы действительно не имеете опыта в веб-разработке, мне придется спросить, как вы застряли на работе, где выпришлось бы выучить новый язык, чтобы выполнить относительно простую задачу.Вам определенно необходимо иметь представление о javascript, чтобы делать что-то подобное на стороне клиента.О, и я бы не рекомендовал тестировать

Не должен совпадать ни с одним паролем, использованным до

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

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