Должен ли WordPress добавлять опции для улучшения безопасности или оставить это разработчикам плагинов?
Судя по страстным ответам на этот вопрос, ответ очевиден: "Ничего не менять!" или "оставить это разработчикам плагинов, WP и так достаточно безопасен"...
Похоже, я сильно ошибся с этим вопросом? Видимо, я задел за живое, хотя такой цели не было. Тем не менее, вот реальный случай из практики...
Я только что получил письмо от клиента, у которого взломали 12 сайтов, потому что злоумышленник подобрал его пароль. Его комментарии открыли мне глаза на некоторые очень простые опции, которые можно добавить в ядро WordPress, чтобы сделать сайты менее уязвимыми к подобным атакам.
Самое простое, что может сделать пользователь - изменить стандартное имя пользователя. Я предполагаю, что более 90% работающих WP-сайтов имеют профиль "admin", который может использоваться или нет, но очевидно имеет полные права. Для злоумышленника это уже полдела!
Но ядро WP тоже можно улучшить очень простыми мерами безопасности. Насколько сложно было бы добавить...
- Блокировку после неудачных попыток входа (настраиваемое пользователем значение)
- Регулировку времени между неудачными попытками входа (настраиваемое значение в секундах)
- Ограничение по диапазону IP (список IP-адресов, с которых разрешён вход)
Это лишь несколько идей, которые пришли в голову. Уверен, у вас есть и лучшие предложения.
И суть моего вопроса не в том, что должны делать "пользователи" для улучшения безопасности - это совсем другой вопрос. Я спрашиваю, какие шаги может предпринять WP, чтобы предоставить некоторые НАСТРОЙКИ, ничего обязательного, но то, что сейчас заполняют разработчики плагинов, хотя это должно быть частью каждой стандартной установки WP (ИМХО).
Планируются ли подобные улучшения в ближайших релизах WP?

Ответ: Имя пользователя - admin
Начиная с версии 3.0, установщик запрашивает имя пользователя для основной учетной записи. При обновлении со старой версии эта опция недоступна (поскольку это не новая установка).
Пример можно увидеть здесь:
http://codex.wordpress.org/Installing_WordPress#Step_5:_Run_the_Install_Script
Ответ: Блокировка злоумышленников
Эффективного способа для этого не существует, так как любые данные о пользователе могут быть подделаны или изменены за считанные секунды. Есть риск заблокировать легитимных пользователей.
Ответ: Неудачные попытки входа
Это может быть полезно, но существует вероятность, что злоумышленник заблокирует доступ администратору (или другому пользователю), преднамеренно вводя неверные учетные данные. Ограничение времени между попытками входа может помочь, но любой опытный хакер автоматизирует процесс, что сводит эффективность этого метода на нет (хотя, конечно, это остановит некоторых).
Это всего лишь мое мнение по данным вопросам, принимайте его как есть. :)

@t3los: у большинства сайтов на WordPress есть только один администратор. Именно к логину администратора я предлагаю добавить дополнительные опции защиты. Я предлагаю это именно как опцию, так же как и изменение постоянных ссылок. Спасибо за предложенные идеи.

@Scott B - Что бы вы предложили для дополнительной защиты учетных записей администраторов?

@t3los: я думаю, что трех мер, которые я перечислил в вопросе, будет достаточно для начала. И это были бы вещи, которые я мог бы просто "рекомендовать" клиентам включить. Ничего обязательного. И когда я говорю, что у большинства сайтов есть один администратор, то обычно это ЕДИНСТВЕННЫЙ пользователь, имеющий доступ к панели управления WordPress, по моему опыту.

@t3los: Просто чтобы уточнить насчёт администраторов. У меня ~1 тыс. клиентов, которые все используют WP (и более 10 тыс. установок WP среди этих клиентов). Более 95% из них имеют ровно 1 пользователя в таблице Users, и почти в 100% этих случаев это администратор.

Да, но, как я уже говорил, есть вероятность, что некоторые меры могут негативно сказаться на опыте законного пользователя (и практически не помешают опытному хакеру). Однако переименование основного аккаунта всегда стоит сделать, как описано в документации по усилению защиты WordPress: http://codex.wordpress.org/Hardening_WordPress, которая является хорошим источником информации по защите сервера (по крайней мере, это хорошая отправная точка).

Я полагаю, вы никогда не сталкивались с крупной пользовательской базой, работающей под жесткой системой безопасности входа? Это не самое приятное зрелище... :)
Предлагаемые вами изменения входа:
Практически не повлияют на безопасность, так как большинство взломов происходят из-за устаревших версий и слабой защиты сервера, а не из-за подбора паролей.
Вызовут больше негативных отзывов от пользователей, чем любые проблемы с безопасностью — как в прошлом, так и в будущем.
Дело в том, что WordPress работает только как часть веб-серверного стека. Его возможности в плане безопасности ограничены, и тотальные меры в большинстве случаев принесут больше вреда, чем пользы.
WordPress делает всё, что в его силах, а плагины позволяют добавить и настроить именно то, что вам нужно. Требовать большего довольно сложно.

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

@Scott B чем включение необязательной опции отличается от установки плагина, который делает то же самое? Я понимаю вашу точку зрения, что это могло бы быть включено в ядро. Но я также понимаю, что это не то, что WordPress обязан делать, и это не то, что нельзя сделать уже сейчас.

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

Если у вашего клиента взломали 12 сайтов, то должно произойти одно из двух: либо ему нужно найти более надежный хостинг, либо перестать создавать дыры в безопасности на своих сайтах.
WordPress не нужно реализовывать предложенные вами функции, потому что они либо уже существуют (например, можно выбрать собственное имя пользователя для админки при установке), либо их использование не оправдано. Как отметил t31os, хотя эти функции могут быть полезными, хакеры также могут использовать их против администраторов.
Недостаточно людей нуждаются или хотят этих мер безопасности, чтобы оправдать их включение в ядро WordPress.
Технически, они уже доступны как опция в ядре:
Перейдите в Плагины → Добавить новый, найдите «Login Lockdown» и установите.

спасибо за предложение использовать "Login Lockdown". Я подумаю над тем, чтобы порекомендовать его своим пользователям. Хотя, мне кажется, эта функция должна быть встроена в ядро как опция в настройках.

WordPress — это самая популярная и широко используемая платформа для ведения блогов. Она поддерживает любой тип сайта, от простого блога до полнофункционального бизнес-сайта. Двадцать шесть процентов всех сайтов в мире используют WordPress. В результате этой популярности хакеры и спамеры проявляют повышенный интерес к взлому безопасности сайтов, работающих на WordPress.
Только в январе 2017 года WordFence сообщил о в среднем 26 миллионах атак методом перебора против сайтов WordPress в день. В том же отчете они зафиксировали более сложные целенаправленные атаки в среднем 4,7 миллиона в день за тот же период. Это огромное количество людей и ботов, которые пытаются навредить. Безопасность вашего сайта WordPress — это серьезный вопрос, и хорошее место для начала его защиты — это экран входа в систему. Давайте начнем делать страницу входа вашего сайта WordPress немного более безопасной.
1. Не используйте admin в качестве имени пользователя Это, пожалуй, самый простой базовый шаг для обеспечения безопасности WordPress, который вы можете сделать как пользователь. Это ничего не стоит, и установка делает это легко. Большинство современных атак нацелены на ваши точки доступа wp-admin / wp-login, используя комбинацию admin и какого-либо пароля в так называемых атаках методом перебора (Brute Force). Здравый смысл подсказывает, что если вы удалите admin, вы также остановите атаку.
Просто создайте нового пользователя в WordPress в разделе Пользователи > Новый пользователь и назначьте ему права Администратора. После этого удалите пользователя admin. Не беспокойтесь о записях или страницах, которые уже создал пользователь admin. WordPress любезно спросит вас: «Что следует сделать с контентом, принадлежащим этому пользователю?» и даст вам возможность удалить весь контент или назначить его новому пользователю, например тому, которого вы только что создали.
2. Используйте надежный пароль
Атаки методом перебора на страницы входа — это одна из распространенных форм веб-атак, с которыми ваш сайт, скорее всего, столкнется. Если у вас простой для угадывания пароль или имя пользователя, ваш сайт почти наверняка станет не только целью, но и жертвой.
Экспериментируйте с паролями сайта и меняйте их регулярно. Улучшайте их надежность, добавляя прописные и строчные буквы, цифры и специальные символы. Обеспечьте использование надежных паролей для всех ваших пользователей.
3. Ограничьте количество попыток входа Это невероятно простой способ остановить атаки методом перебора на вашу страницу входа прямо на месте. Атака методом перебора работает путем попыток угадать ваше имя пользователя и пароль, пробуя множество комбинаций снова и снова.
Если отслеживается конкретный IP-адрес, с которого осуществляется атака, то вы можете блокировать повторные попытки перебора и защитить свой сайт. Установите Limit Login Attempts для предотвращения атак методом перебора.
4. Будьте в курсе обновлений Очень большой процент взломов сайтов происходит из-за устаревших, уязвимых версий плагинов.
Каждый хороший программный продукт поддерживается его разработчиками и время от времени обновляется, но WordPress обновляется очень часто. Эти обновления предназначены для исправления ошибок, а иногда содержат важные исправления безопасности.
Поэтому регулярно обновляйте WordPress, плагины и темы.
5. Регулярно создавайте резервные копии сайта Независимо от того, насколько безопасен ваш сайт, всегда есть возможность для улучшений. Но в конечном итоге, хранение резервной копии вне сайта — это, пожалуй, лучшее средство, что бы ни случилось.
Если у вас есть резервная копия, вы всегда можете восстановить свой сайт WordPress в рабочее состояние в любое время. Есть несколько плагинов, которые могут помочь вам в этом отношении.
Плагин WP All Backup помогает легко создавать резервные копии и восстанавливать их в один клик. Ручное или автоматическое резервное копирование, а также хранение резервных копий в безопасном месте — Dropbox, FTP.
Создает резервную копию всего вашего сайта: базы данных, текущего ядра WP, всех тем, плагинов и загруженных файлов.
WP ALL Backup дает администраторам WordPress возможность переносить, копировать или клонировать сайт из одного места в другое. Если вам нужно переместить WordPress или создать резервную копию WordPress, этот плагин может упростить процесс.
6. Установите надежные пароли для вашей базы данных Надежный пароль для основного пользователя базы данных — это обязательное условие — тот, который WordPress использует для доступа к базе данных.
Как всегда, используйте прописные и строчные буквы, цифры и специальные символы для пароля.
7. Настройте блокировку сайта и запрет пользователей Функция блокировки для неудачных попыток входа может решить огромную проблему, а именно прекратить непрерывные попытки перебора. Каждый раз, когда происходит попытка взлома с повторяющимися неверными паролями, сайт блокируется, и вы получаете уведомление об этой несанкционированной активности.
Плагин WP User WordPress имеет механизм для замедления атак методом перебора, ограничения попыток входа, уведомления о блокировке, регулярных выражений для паролей, Google reCAPTCHA, журнала входа, утверждения/отказа пользователям, автоматического/почтового подтверждения пользователей.
