безопасность wordpress

27 June 2009 #wordpress #security

Для улучшения безопасности wordpress требуется соблюдать ряд правил. Правила простые, но зачастую их игнорируют. Тем самым подвергая опасности свой собственный блог.

Итак, правила:

  1. Периодическое создание полного бекапа вашего блога. Достаточно будет еженедельного бекапа всего блога, включающего базу данных и всех файлов и ежедневного бекапа базы данных. И если ежедневный бекап можно организовать с помощью плагина WordPress Database Backup, то еженедельный бекап блога придется организовывать из админки хостинга вручную... В случае взлома блога, можно будет очень быстро вернуть его в нормальное состояние.
  2. При создании блога следует задавать префиксы таблиц базы данных, отличных от стандартного wp_ То есть все имена таблиц будут начинаться именно с префикса, заданного вами. Если создание таблиц уже было вами произведено и он является стандартным, то стоит произвести его изменение. Для этого из панели phpmyadmin делаем экспорт существующих таблиц базы данных, сохраняя полученный файл на диске. Не забудьте оставить копию этого файла на всякий случай. Распаковав полученный файл, редактируем его, заменяя wp_ на выбранный префикс. Затем отредактированный файл запаковываем обратно в zip и начинаем удалять все таблицы базы данных на хостинге, используя phpmyadmin. После удаления импортируем в базу данных полученный файл. Собственно все. Осталось только отредактировать файл wp-config.php на вашем хостинге, изменив в нем используемый префикс таблиц на новый.
  3. Переименовать имя администратора с admin на другое. При создании блога на wordpress автоматически создается учетная запись администратора блога с предопределенным именем admin. Для ее изменения необходимо использовать интерфейс phpmyadmin. Заходим в нашу базу данных и ищем таблицу wp\_users. Если к этому времени вы уже изменили префикс таблиц базы данных, то имя таблицы будет выглядить как ваш\_префикс\_users. Открываем таблицу для редактирования и видим список всех пользователей, которые были зарегистрированы на вашем блоге. Ищем поле с именем admin и открываем его, изменяем ДВА раза в этом поле имя admin на выбранное и закрываем таблицу. Теперь при входе в админку блога вам необходимо будет использовать новое значение в имени пользователя.
  4. Блокирование доступа к админке средствами веб-сервера. Этот пункт очень важен. По той простой причине, что он позволяет заблокировать обращение к файлам админки wordpress через get или post запросы. Осуществить данную операцию можно двумя способами. Первый -- используя файловый менеджер DirectAdmin. Второй -- ручное создание файлов .htaccess и .htpasswd. Используя файловый менеджер панели DirectAdmin можно закрыть любую директорию на хостинге паролем, не затрачивая на это лишних усилий. Достаточно выбрать у нужной директории пункт защитить и ответить на поставленные вопросы, типа вопроса, который будет задаваться при попытке входа в эту директорию, пользователь, который должен будет использоваться при входе в директорию и пароль. Все очень просто и эффективно. Имя пользователя и пароль лучше всего выбирать отличными от тех, что уже установлены в блоге. Для ручной генерации файла .htpasswd придется использовать Htpasswd generator:
    htpasswd -mbc .htpasswd USER PASSWORD
    где USER -- имя пользователя, которое буде использоваться при входе в каталог, а PASSWORD -- пароль. Полученный файл выкладываем на хостинг, причем лучше всего, если он будет располагаться вне папки public_html, в которой располагаются публичные файлы вашего блога. И затем в каталоге wp-admin создаем файл .htaccess следующего содержания:
    AuthUserFile /путь от корневого каталога/.htpasswd
    AuthType Basic
    AuthName "Access_Control"
    Require valid-user
  5. Контроль доступа к учетной записи администратора. Для этого существует хороший и полезный плагин Login LockDown, который фиксирует неудачные попытки доступа и блокирует возможность брутфорса.
  6. Для контроля за общей безопасностью блога по вышеприведенным правилам удобно использовать плагин WP Security Scan. Этот же плагин позволяет удалить информацию об используемой версии wordpress из файлов.
  7. Скрытие содержимого каталога wp-content/plugins. Для данной операции существует два способа. Или в указанной папке создать пустой файл index.html, или в файле .htaccess данной директории указываем опцию Options -Indexes (минус обязателен).

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