WordPress
Защитите свою установку
Поиск…
замечания
Веб-сайты WordPress часто взломаны. Этот раздел посвящен методам и методам, которые повышают безопасность вашей установки WordPress, чем то, что достигается при базовой установке.
Помимо этой темы, еще одним хорошим местом для ознакомления о защите установки WordPress является страница Hardening WordPress Codex .
Отключить редактор файлов
Редактор файлов, который поставляется с WordPress, представляет собой угрозу безопасности. Если злоумышленник получает доступ администратора к вашему сайту WordPress, он будет легко вставлять вредоносный код в файлы темы и плагина. Это также риск для клиентов, которые не знают, что делают. Когда некорректный двоеточие в редакторе файлов может сломать сайт и сделать его недоступным из браузера.
В файле wp-config.php
WordPress отключите редактор файлов, добавив следующую строку кода.
define( 'DISALLOW_FILE_EDIT', true );
Эта строка будет иметь желаемый эффект при добавлении в файл functions.php
вашей темы, но лучше добавить в wp-config.php
.
Если вы используете WordPress CLI для установки WordPress, вы можете использовать следующую команду для создания файла wp-config.php
с отключенным редактированием файлов.
/* declare variables beforehand or substitute strings in */
wp core config --dbname="$MYSQL_DBNAME" --dbuser="$MYSQL_USERNAME" --dbpass="$MYSQL_PASS" --dbprefix="$WP_DBPREFIX"_ --locale=en_AU --extra-php <<PHP
define( 'DISALLOW_FILE_EDIT', true );
PHP
Этот метод полезен, если вы устанавливаете WordPress со сценарием.
Переместить wp-config.php
Самая важная информация о установке WordPress хранится в файле wp-config.php
. Если хакер получает доступ к этому файлу, они имеют полный контроль над вашим сайтом.
По умолчанию wp-config.php
хранится в папке установки WordPress. Чтобы сделать этот файл труднее украсть, вы можете переместить его из доступной в Интернете папки. Если вы переместите его только в одну папку выше, WordPress автоматически найдет его. Если вы переместите wp-config.php
в другое место, создайте пустой файл с именем wp-config.php
в папке установки WordPress. Затем добавьте следующее:
define('ABSPATH', dirname(__FILE__) . '/');
// '../../wp-config.php' defines location two folders above installation folder.
// Substitute with actual location of wp-config.php file as necessary.
require_once(ABSPATH . '../../wp-config.php');
Возможно, вам понадобится сделать исполняемый файл php
в папке, в которую вы помещаете wp-config.php. Вы должны сделать исполняемый файл php как можно меньше. Хорошая система ставит WordPress в /path/to/wordpress/install/
и config в /path/to/wordpress/config
. Вы убедитесь, что папка конфигурации не доступна в Интернете и не помещает другую важную конфиденциальную информацию в /path/to/
or higher в иерархии папок. В этом случае вы должны написать строку, аналогичную следующей в вашем php.ini
:
open_basedir = "/path/to/wordpress/install/;/path/to/wordpress/config"
Этот метод спорный, и некоторые люди не думают, что это повышает безопасность. Обширное обсуждение этой темы можно прочитать в этом вопросе WordPress StackExchange .
Установите пользовательский префикс для таблиц WordPress.
Когда вы устанавливаете WordPress на свой сервер, сценарий установки помещает префикс перед именами таблиц MySQL WordPress. По умолчанию этот префикс установлен на «wp_». Таблица сообщений WordPress будет называться wp_posts
например. Изменяя префикс таблицы, вы можете создать некоторую защиту от неизвестности. Таким образом, когда хакер пытается атаковать SQL-инъекциями, им придется угадать префикс вашей таблицы, а не просто использовать «wp_». Вы можете установить этот префикс как угодно.
Установить префикс в новой установке WordPress
При использовании знаменитой 5-минутной установки Изменить префикс в поле во время установки.
Если при установке через WordPress CLI используйте следующую команду:
// set other variables above, or substitute your strings in.
WP_DBPREFIX=foo
wp core config --dbname="$MYSQL_DBNAME" --dbuser="$MYSQL_USERNAME" --dbpass="$MYSQL_PASS" --dbprefix="$WP_DBPREFIX"_ --locale=en_AU
Изменить префикс в существующей установке
Изменение префикса немного сложнее. Сначала используйте FTP-программу, такую как FileZilla, для редактирования файла wp-config.php
. Измените запись $table_prefix = 'wp_';
to $table_prefix = 'foo_';
заменив «foo» на ваш желаемый префикс.
Затем нам нужно будет отредактировать базу данных. Если у вас есть доступ к phpMyAdmin, войдите в систему и выполните следующие действия:
- Выберите базу данных WordPress
- Выберите все таблицы, а в раскрывающемся списке выберите «заменить префикс таблицы».
- В «От» тип «wp_». В «Кому» введите этот префикс «foo_» в этом примере и нажмите «Отправить».
- Таблицы теперь должны выглядеть так:
Если вы не можете использовать phpMyAdmin, используйте следующую команду MySQL:
RENAME table `wp_comments` TO `foo_comments`
Вам нужно будет запустить эту команду для каждой таблицы, заменив «комментарии» на другие имена таблиц.
Затем нам нужно изменить несколько записей в некоторых таблицах. Запустите этот запрос в таблице «foo_options»
SELECT * FROM foo_options WHERE option_name LIKE '%user_roles%'
Должна появиться запись с именем_параметра 'wp_user_roles'. В этой записи измените запись «option_name» из wp_user_roles
в foo_user_roles
.
Затем откройте таблицу «foo_usermeta» и найдите каждую запись с «wp_» спереди. и измените его на 'foo_'. Количество записей, которые вы должны изменить, будет зависеть от того, сколько у вас пользователей.
Это должно быть все, что вам нужно, чтобы изменить префикс в существующей установке