Вопрос или проблема
Как следует из темы, у меня есть некоторые проблемы с безопасностью, и я ищу советы, так как я только начинаю работать с WordPress, поэтому любые идеи будут полезны.
В настоящее время я управляю сайтом WordPress, размещенным на A2 Hosting, где клиент хранит информацию о клиентах (в основном контактные данные) на отдельных страницах WordPress. Хотя я считаю, что это может быть не лучший подход, именно так система была настроена на данный момент, и они хотят, чтобы я гарантировал, что эти данные полностью защищены от несанкционированного доступа, только клиент (чьи данные это) и администратор (мой клиент) должны иметь к ним доступ. Я принял некоторые меры для добавления уровней безопасности на сайте любыми возможными способами, которые смог придумать, например, ограничение доступа к файлам (например, wp-config.php) с помощью правил htaccess, блокировка ботов и поисковых систем с использованием robots.txt (хотя я знаю, что это имеет свои ограничения), некоторые меры по усилению безопасности, такие как отключение xml-rpc, изменение адреса для входа по умолчанию, отключение редактирования файлов, двухфакторная аутентификация и т. д. Я пробовал множество решений, которые нашел в интернете. По поводу фаервола и вредоносных программ A2 Hosting утверждает, что предоставляет обе услуги (хотя я не видел интерфейса фаервола на панели управления, провайдер хостинга настаивает на том, что он активен). Для большего спокойствия я настроил Wordfence для фаервола на уровне приложения и безопасности.
Клиент особенно беспокоится о безопасности учетных данных базы данных, хранящихся в файле wp-config.php в открытом виде. Я применил соответствующие права доступа к файлам и ограничил доступ с помощью .htaccess, но они хотят, чтобы я изучил варианты шифрования учетных данных базы данных в качестве дополнительного уровня защиты на случай, если кто-то получит доступ к этому файлу. Моя забота заключается в том, что даже если учетные данные зашифрованы, хранение ключа расшифровки в безопасном, но доступном месте (например, в переменных окружения или другом конфигурационном файле) кажется бессмысленным, поскольку злоумышленник, получивший доступ к файлам, может найти как ключ, так и учетные данные (это только мое мнение, я не знаю, существует ли жизнеспособное решение). Я ищу экспертный совет о том, является ли шифрование жизнеспособным решением в этом случае или есть лучшие методы для защиты учетных данных базы данных и общей безопасности сайта для обеспечения безопасности базы данных и доступности страниц (я знаю, что мы можем защитить страницы паролем, но мой клиент этого не хочет, так как они хотят, чтобы их клиенты могли получать к ним доступ без особых проблем. Что есть, то есть, наверное). Поэтому любые мнения и рекомендации приветствуются.
Ответ или решение
Конечно, я рад помочь вам с вашими вопросами по безопасности WordPress. Ваша забота о защите чувствительной информации клиентов совершенно оправдана. Давайте разберемся с вашими текущими мерами безопасности и рассмотрим дополнительные шаги, которые вы можете предпринять.
1. Защита базы данных
Вы абсолютно правы, что хранение учетных данных базы данных в файле wp-config.php
в открытом виде может вызывать опасения. Хотя вы уже применили правильные разрешения файла и правила .htaccess, существует несколько дополнительных подходов:
-
Обфускация учетных данных: Вы можете рассмотреть возможность обфускации учетных данных, добавив их в переменные среды сервера (например, через файл
.bash_profile
или__env
), если ваш сервер поддерживает такие манипуляции, и затем вызывать их из вашего кода. Однако, как вы правильно заметили, это не обеспечивает полного уровня безопасности, если злоумышленник получит доступ ко всем вашим файлам. -
Использование сервиса управления секретами: Если ваш хостинг поддерживает это, использование сервисов управления секретами (например, AWS Secrets Manager или HashiCorp Vault) может добавить дополнительный уровень безопасности.
2. Безопасность сайта в целом
Вы уже реализовали множество мер безопасности, и это замечательно. Вот еще несколько предложений:
-
Регулярные обновления: Убедитесь, что все плагины, темы и сам WordPress всегда обновлены до последних версий, так как большинство изъянов безопасности устраняются в новых обновлениях.
-
Резервные копии: Настройте регулярное резервное копирование сайта и базы данных. Это очень важно для восстановления после потенциальных атак.
-
Использование HTTPS: Убедитесь, что ваш сайт работает по протоколу HTTPS для защиты передаваемых данных.
3. Доступ к страницам с клиентской информацией
Поскольку ваш клиент не хочет использовать парольную защиту для страниц, это может быть сложной задачей. Возможные решения:
-
Ограниченная видимость: Рассмотрите вариант использования плагинов, которые предоставляют доступ к страницам на основе ролей пользователя. Например, вы можете разрешить доступ только зарегистрированным пользователям или пользователям с определенной ролью, обеспечивая тем самым некоторую степень защиты.
-
Запись журнала активности: Внедрите логи активности пользователей, чтобы отслеживать, кто и когда получает доступ к конкретным страницам. Это может помочь вам выявить подозрительное поведение.
Заключение
Защита конфиденциальной информации — это многослойный процесс, и вы уже на правильном пути, реализуя множество мер безопасности. Шифрование учетных данных базы данных может быть трудоемким и не всегда эффективным, особенно если ключи для расшифровки могут быть обнаружены. Вместо этого сосредоточьтесь на усилении общей безопасности вашего сайта и контроле доступа к важным данным. Регулярные аудиты безопасности и бэкапы также помогут уменьшить риски.
Если у вас есть дополнительные вопросы или требуется дальнейшая помощь, не стесняйтесь обращаться.