Просто о сложных паролях для WordPress-пользователей

Пост написан пользователем iTRON и рассказывает про WordPress плагин под названием Safety Passwords.

Проблематика паролей

Когда ваш WordPress проект подразумевает более одного пользователя, а вы осознаёте, что одного доброго слова недостаточно, чтобы убедить остальных юзеров применять в меру сложные пароли (и тем более менять их каждые икс дней) — это повод заставить их сделать это с помощью доброго слова и кольта какого-то плагина.

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

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

В моем случае третий пункт оказался критическим. Проект подразумевает администраторские права у нескольких пользователей, оценка уровня адекватности которых не входит в стратегию назначения ролей. Это вообще довольно общая история, и на этот случай даже существует пресловутый закон Мерфи, который в нашем контексте звучит как «если админы имеют красную кнопку «Сделать дичь», неизбежно один из них её обязательно нажмёт».

Это красной кнопкой в нашем случае стала возможность изменить настройки безопасности паролей через дашборду. Все эти плагины позволяли просто зайти и понизить уровень безопасности. И если сам плагин я ещё могу использовать в неотключаемом режиме must use, то вот его настройки я никак не мог заблокировать от изменений кем-то из админов.

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

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

Каким должен быть плагин для паролей

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

  • Простота — единственное предназначение плагина это обеспечивать безопасные пароли.
  • Неотключаемость — настройки могут быть выставлены в PHP константах, что означает невозможность их изменения в админке.
  • Базовая логика безопасных паролей — настраиваемая минимальная длина, обязательные спецсимволы, периодическая обязательная смена пароля, блокировка повторного использования старых паролей.

Что получилось

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

Код плагина Safety Passwords доступен на Github.

Надёжных вам паролей и да не одолеет вас брутфорс!


Андрей Писаревский

Автор: Андрей Писаревский 

PHP | WordPress Team Lead. Имею коммерческий опыт в программировании с 2010 года и экспертизу в полном цикле веб разработки: Frontend, Backend, QA, Server administration, управление крупными командами и Enterprise проектами.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *