Поиск…


замечания

Веб-сайты 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_'. Количество записей, которые вы должны изменить, будет зависеть от того, сколько у вас пользователей. введите описание изображения здесь

Это должно быть все, что вам нужно, чтобы изменить префикс в существующей установке



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow