Получить защищенный WordPress: переименовать папку плагинов
English version: Get WordPress protected: rename the plugins folder
Присвоение папке плагинов нового имени – один из самых недооцененных способов сделать вашу защиту WordPress сильнее. И все же это бесплатно и просто.
Почему это важно и как это работает
Согласно нашим исследованиям в Cerber Lab большинство хакерских атак и попыток использовать уязвимости плагинов предполагают, что все плагины WordPress находятся в папке по умолчанию для всех плагинов, которая является / wp-content / plugins / . К счастью, имя папки можно легко изменить на любое, буквально в два простых шага. Означает ли это, что киберпреступники не знают о возможности переименовать папку и вслепую атаковать расположение плагина по умолчанию? Нет, не всегда, но подавляющее большинство веб-сайтов на WordPress используют структуру папок по умолчанию , и поэтому киберпреступники с легкостью используют эту уязвимость.
Наша аналитика показывает, что большинство веб-сайтов взломано с помощью уязвимости в устаревшем плагине, и в большинстве случаев злоумышленник использовал уязвимость в файле PHP, который находится в папке плагинов WordPress по умолчанию.
Подсказка: используйте сканер вредоносных программ Cerber, чтобы найти уязвимость в установленных плагинах .
Как переименовать папку плагинов WordPress
Прежде всего, вам нужно иметь доступ к файлам на вашем сайте через панель управления хостингом, которая обычно имеет файловый менеджер. Кроме того, вы можете использовать FTP-клиент.
Первый шаг – переименовать папку плагинов в любое имя. Давайте предположим, что мы используем имя модуля . Название папки должно содержать только символы ASCII. Проще говоря "использовать только буквы латинского алфавита".
Вторым шагом является добавление двух директив определения в файл wp-config.php, которые сообщают WordPress, что мы используем новое имя для папки плагинов. Смотрите пример ниже и обратите внимание:
- Вы должны добавить директивы в начало файла на следующей строке после <? Php .
- Никаких косых черт.
<? PHP
define ('WP_PLUGIN_DIR', '/ full / path / to / wp-content / modules');
define ('WP_PLUGIN_URL', 'https://example.com/wp-content/modules');
Константа WP_PLUGIN_DIR определяет полный путь без косой черты в переименованной папке плагинов.
Константа WP_PLUGIN_URL определяет URL без косой черты в переименованной папке плагинов.
Выполнив эти два шага, вы добавите еще один барьер безопасности в свой WordPress. Еще один механизм безопасности, который вы должны рассмотреть, – включить сканирование вредоносных программ по расписанию .
Возможные проблемы и устранение неполадок
Сайт не загружается. Обычно это означает, что вы сделали опечатку в имени папки. Внимательно проверьте определения, которые вы добавили в wp-config.php, полный путь и указанный вами URL.
Некоторые функции перестали работать. У вас на сайте установлен плохо спроектированный или устаревший плагин. Лучшее, что вы можете сделать, это избавиться от этого. Нет оправданий плохой разработке плагинов. Разработчик плагина должен соблюдать стандарты кодирования WordPress.
Как восстановить имя папки по умолчанию. Удалите все строки с директивами WP_PLUGIN_DIR и WP_PLUGIN_URL из файла wp-config.php, переименуйте папку плагинов обратно в плагины .
I tried changing the directory but it didn’t work.
Looking for more information I found something that works.
define( ‘WP_PLUGIN_DIR’, dirname(__FILE__) . /content/mod’);
define( ‘WP_PLUGIN_URL’, ‘http://example.com/content/mod’);
Why this way if it works and not the way you have in the post?
Has anything changed in the latest versions of WordPress?
The same thing happens to me with WP-CONTENT
Thanks
Yes, you can use this way too but it leaves some room for uncertainty because a constant should be constant. The perfect way is to define a static value like a string. It didn’t work for you most likely because the path you specified for WP_PLUGIN_DIR was not correct. Possibly because you had changed the default wp-content path to content. In this case, the full config should be:
// no trailing slashes
define('WP_CONTENT_DIR', dirname(__FILE__) .'/content');
define('WP_CONTENT_URL', 'https://example.com/content');
define('WP_PLUGIN_DIR', WP_CONTENT_DIR . '/mod');
define('WP_PLUGIN_URL', WP_CONTENT_URL . '/mod');
Thanks!
I started by following this other post https://wpcerber.com/turn-wordpress-into-fort-knox/
But I couldn’t get it to work well.
Yes, that approach requires some technical background.