Как я могу безопасно реализовать функцию входа без пароля?

10

Только что выложил новый плагин: No More Passwords

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

Это безопасно?

Я сделал следующее для обеспечения безопасности:

  1. Имя пользователя / пароль никогда не передаются взад и вперед, только уникальный хеш.
  2. Хэш удаляется из базы данных, как только он используется, старые хэши, которые не использовались, не могут быть использованы, если база данных не взломана, но тогда у вас есть большие проблемы.
  3. Все запросы к базе данных хэша были исключены для предотвращения атак XSS.
  4. nonce добавлен в вызов ajax.
  5. добавлен одноразовый номер и подтверждение на мобильном конце для предотвращения атаки CSRF.

Здесь у меня есть полное описание того, как это работает .

Следующая версия, я надеюсь реализовать oauth через твиттер, так как iOS теперь работает в ...

Спасибо за ваш вклад заранее.

Редактировать: я решил, что в качестве добавленного слоя я добавлю проверку sessionID, чтобы убедиться, что это тот же браузер, который входит в систему, как браузер, который инициировал вход в систему с QR-кодом.

jackreichert
источник

Ответы:

5

(Я любитель альтернативных схем входа в систему)

Немного придирки по поводу выхода из БД:

  • Вы используете mysql_real_escape_string()напрямую. Предпочтительным методом является использование $wpdb->prepare()или esc_sql().

  • Запросы UPDATE лучше всего обрабатываются $wpdb->update()

scribu
источник
Я обновил плагин, чтобы включить это. Спасибо за совет.
Джекрайхерт
5

Я думаю, что это отличная идея, но, как всегда, самая большая слабость - это человеческий фактор, в данном случае это будет потерянный, украденный или перехваченный телефон. Задумывались ли вы о добавлении двухслойной аутентификации, такой как код подтверждения SMS (например, gmail и т. Д.). Или более простой альтернативой может быть печенье + секретное слово.

Также можете ли вы указать, какой алгоритм генерирует QR-код на вашей странице?

Уик
источник
Таким образом, плагин полагается на то, что вы вошли в свой телефон на работу. Риск безопасности, связанный с потерей телефона, примерно такой же, как если бы компьютер оставался подключенным к вашему wp-сайту. Я использую график API Google для создания кода QR.
Джекрайхерт
3
Я просто подумал, что было бы неплохо добавить еще один слой, который не мешал бы пользователю, так как телефоны были украдены / потеряны намного больше, чем компьютеры, а на компьютере вам все равно нужно будет знать имя пользователя / пароль.
Вик