Безопасность WordPress

В предыдущей заметке я рассказывал, как установить WordPress на домашний ПК с сервером Apache.
Перед тем, как перейти непосредственно к написанию заметок в блоге, хочу поделиться с вами с советами по обеспечению безопасности сайта, которые я вычитал в книжке Lisa Sabin-Wilson — WordPress All-in-One For Dummies, 3rd Edition — 2017 (Book 2, Chapter 5 — Configuring WordPress for Optimum Security). Хотя для тестирования блога на домашнем ПК они вероятно и не пригодятся, кое-что из этого будет полезно когда вы разместите блог на реальном веб-хостинге. Итак, полезные советы.

  1. Размещайте свой сайт на веб-хостинге с хорошей репутацией, администраторы которого поддерживают сервер в хорошем с точки зрения безопасности состоянии. Для плохих хостингов существует специальный термин soup-kitchen servers — держитесь от них подальше.
  2. Своевременно обновляйте WordPress. В новых версиях движка устраняются известные уязвимости.
  3. Используйте надежные пароли. При работе с сайтом вам приходится использовать несколько паролей: для пользователя базы данных, для SFTP (SSH File Transfer Protocol) когда вы работаете с реальным веб-хостингом, для учетной записи WordPress (их у вас может быть несколько с различными ролями). Желательно, чтобы все эти пароли были надежными (трудными для угадывания), и вот для генерации таких паролей существуют такие сервисы, как www.lastpass.com и 1password.com. Используйте их.
  4. Пользуйтесь аккаунтом с ограниченными привилегиями. Создайте отдельный аккаунт для добавления постов (роль — Автор) с меньшими привилегиями, чем у администратора и используйте его для повседневного писания заметок.
  5. Установите на свой сайт плагин Akismet Anti-Spam чтобы защититься от спама в комментариях. Пользование плагином бесплатно для персональных блогов, хотя вам и придется завести аккаунт на сайте Akismet.com.
  6. Установите Google Authenticator Plugin, чтобы защитить учетную запись администратора и учетную запись автора сайта от несанкционированного доступа. После этого аутентификация будет осуществляться при помощи QR-кода, который надо будет просканировать мобильным телефоном.
  7. Установите Limit Login Attempts Plugin, чтобы ограничить число попыток входа в учетную запись администратора и учетную запись автора сайта.
  8. Отключите редактор тем и плагинов. Это текстовый редактор, при помощи которого вы можете прямо из панели управления WordPress Dashboard вносить изменения в файлы тем и плагинов. Злоумышленник, один раз завладевший доступом к Dashboard, может внести вредоносный код в эти файлы, поэтому редактор тем и плагинов лучше отключить. В файле wp-config.php после строки

    define('DB_COLLATE', '' );

    добавьте строки

    /** Disabling theme and plugin editors */
    define('DISALLOW_FILE_EDIT', true);
  9. Запретите выполнение PHP кода в некоторых папках wordpress, а именно:

    • /wp-content
    • /wp-content/uploads
    • /wp-includes

    Для этого в указанных папках создайте текстовый файл .htaccess, содержащий следующий текст:

    <Files *.php>
        Order allow,deny
        Deny from all
    </Files>

    В проводнике Windows создать файл с именем .htaccess не получится (попробуйте сами), но это можно сделать из командной строки:

    touch .htaccess

    Почему надо запрещать выполнение PHP-кода в некоторых папках: представьте себе, что злоумышленник под видом медиа-файла загружает на сайт файл php, который WordPress поместит в папку /wp-content/uploads. Запрет выполнения php-кода предотвратит выполнение вредоносного кода, который имеется в этом файле. Правда эта мера подействует только в том случае, если ваш хостинг-провайдер пользуется сервером Apache и если в его конфигурации (в файле httpd.conf) разрешена per-directory configuration.

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

  1. Запретите выполнение PHP кода в некоторых папках wordpress, добавив в httpd.conf (конфигурационный файл сервера Apache, который лежит в папке C:\Apache24\conf) следующие строки:

    # Disable PHP execution in some wordpress directories for security reasons
    <Directory "c:/Apache24/htdocs/wp-content">
        <Files *.php>
            Order allow,deny
            Deny from all
        </Files>
    </Directory>

    # Disable PHP execution in some wordpress directories for security reasons
    <Directory "c:/Apache24/htdocs/wp-includes">
        <Files *.php>
            Order allow,deny
            Deny from all
        </Files>
    </Directory>

    Как это работает: злоумышленник под видом медиа-файла загружает на сайт файл php, который WordPress поместит в папку /wp-content/uploads. Запрет выполнения php-кода предотвратит выполнение вредоносного кода, который имеется в этом файле.

  2. Установите web application firewall (WAF) ModSecurity (www.modsecurity.org) — модуль расширения для сервера Apache. Сам устанавливать не пробовал, но по-видимому, вам придется компилировать его из исходников, а для этого надо иметь среду разработки Visual Studio.

В следующей заметке займемся наконец написанием постов.

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

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