»  Безопасность  »  Как изменить префикс базы данных

Как изменить префикс базы данных

Таблицы базы данных сайта на Вордпресс имеют по умолчанию префикс wp_. Многие специалисты по безопасности рекомендуют изменить этот префикс для увеличения безопасности сайта. Нужно ли менять префикс, или это изменение лишь ненамного увеличит безопасность сайта?

Суть этого способа защиты в том, что изменение префикса поможет избежать исполнения опасных SQL запросов. Обычно хакеры используют стандартные запросы в своих атаках, но если вы измените префикс базы данных на уникальный, то хакер получит ошибку.

Префикс базы данных можно изменить во время установки Вордпресс в 1 клик, но если у вас уже есть работающий сайт, то в этой статье вы узнаете, как изменить префикс базы данных вручную или при помощи плагинов безопасности.

Чтобы изменить префикс БД вручную, надо сделать изменения в приложении phpMyAdmin при помощи SQL запросов и изменить запись о префиксе в файле wp-config.php. В плагине All in One WordPress Security или аналогичных префикс базы данных меняется в несколько кликов.

Зачем менять префикс базы данных

Существует две точки зрения на этот вопрос, — менять и не менять, так как изменение префикса особо ничего не изменит.

Прочитайте оба аргумента, чтобы принять свое собственное решение.

SQL внедрения и общая картина

Многие специалисты рекомендуют изменить префикс БД для того, чтобы не дать возможность хакеру получить контроль над базой данных при помощи SQL запросов.

Существует 2 типа SQL внедрений. Классическое SQL внедрение — когда хакер получает возможность посылать команды базе данных и получать ответы от базы данных. Слепое SQL внедрение — когда хакер может посылать команды базе данных, но не получает ответов от нее.

В обоих случаях это означает, что хакер может сделать SQL запрос к вашему сайту без вашего разрешения. Если хакер может выполнить такой запрос, то у него появится доступ к базе данных сайта, это значит, что он может изменить что угодно, у него есть полный контроль над сайтом.

После получения контроля над базой данных злоумышленники обычно меняют логин и пароль администратора. Администратор сайта больше не может войти в админку сайта, а хакеры продолжают делать с сайтом то, что хотят, от рассылки спама с этого сайта и кражи личной информации до заражения других сайтов и рассылки спама с них и кражи другой информации.

Аргумент Против

Причина против переименования префикса базы данных состоит в том, что если база данных выполняет какие-то запросы злоумышленника, то он может получить доступ к базе данных.

Если первая попытка хакера получить ответ от базы данных оказывается неудачной, он может создать новый запрос к базе данных для поиска второй части названий таблиц, которые имеют стандартные имена.

Например, второй запрос может запрашивать имена, содержащие usermeta или postmeta в названии. Поиск вернет полное имя таблицы вместе с новым префиксом таблицы.

Хотя после этого аргумента может показаться, что нет смысла менять префикс базы данных, есть несколько аргументов с другой стороны.

Аргументы За

Изменение префикса рекомендовано в руководстве по Увеличению безопасности Кодекса Вордпресс.

Эта рекомендация попала туда после устранения разработчиками Вордпресс уязвимостей, связанных с SQL внедрениями.

Еще один аргумент состоит в том, что хакеры редко ищут уязвимости сайтов, посещая сайты в браузере один за одноим вручную. Обычно они создают программы (ботов), которые автоматически обходят сотни или тысячи сайтов и ищут в них известные уязвимости.

После того, как на сайте находится уязвимость, например такая, которая позволяет выполнять SQL запросы злоумышленника, боты взламывают такие сайты, отправляют отчет хакеру и идут дальше.

Если вы измените префикс базы данных, боты не получат ответ от БД на свой первый запрос, так как они запрограммированы создавать стандартные запросы. Если ваш сайт попадется такому боту, то он получит ошибку и пойдет дальше на тот сайт, где БД даст ответ на первый запрос с префиксом wp_.

Изменение префикса wp_ на что-нибудь уникальное поможет отбить первую волну автоматической атаки, но может не помочь, если хакер вручную попробует получить доступ к базе данных, поэтому кроме изменения префикса нужно иметь другие способы защиты сайта.

Сделайте бэкап

Так как вы будете работать с глубокими настройками базы данных и файлом wp-config, сделайте бэкап всего сайта и базы данных. Если что-то пойдет не так, вы сможете вернуться к рабочей версии сайта.

После того, как вы сделали бэкап, можно приступить к изменению префикса.

1. Изменение в wp-config.php

Этот файл находится в корневой папке сайта, скачайте его на компьютер с помощью ftp-клиента или менеджера файлов на хостинге.

Откройте файл, найдите такую строку:

Измените wp_ на что-нибудь уникальное, но рекомендуется оставить нижнее подчеркивание в конце. Префикс может содержать цифры, буквы и знак подчеркивания, например, db14_, fr23br17_, a01_b01_ и так далее.

Сохраните файл и закачайте обратно на сервер. Если теперь вы попытаетесь зайти на свой сайт, то обнаружите, что он недоступен. Так и должно быть, потому что теперь данные в базе данных не соответствуют данным в файле wp-config.

Чтобы изменить данные в базе данных переходим к следующему этапу:

2. Изменения в базе данных

Зайдите на хостинг и откройте базу данных. Если вы не знаете или забыли логин и пароль, или не знаете, как создавать запросы в этом приложении, переходите в статью Как очистить и оптимизировать базу данных Вордпресс.

В базе данных вам нужно будет поменять префиксы главных таблиц. Структура запроса для изменения всех таблиц такая:

RENAME table `wp_название-таблицы` TO `новый-префикс_название-таблицы`;

Замените название-таблицы на нужное название таблицы, и новый-префикс на ваш новый префикс, который вы сохранили в файле wp-config.php.

1. Для одиночной установки Вордпресс измените префиксы в стандартных таблицах Вордпресс:

Можете скопировать и выполнить сразу все запросы, не забудьте заменить новый-префикс на ваш новый префикс.

2. Для мультисайт установки добавьте эти префиксы:

Не забудьте изменить новый-префикс на новый префикс.
Также измените эти таблицы:

wp_#_commentmeta
wp_#_comments
wp_#_links
wp_#_options
wp_#_postmeta
wp_#_posts
wp_#_terms
wp_#_term_relationships
wp_#_term_taxonomy

Замените # на ID вашего субсайта. Например, запрос к таблице wp_commentmeta подсайта с ID 2 будет выглядеть wp_2_commentmeta

Кроме этих запросов нужно изменить префикс в таблицах, которые создали установленные плагины, и таблицы плагинов, которые были созданы для подсайтов в Мультисайт установке. Посмотрите в левой колонке какие еще таблицы остались со старым префиксом, измените их вручную тем же способом.

Измените оставшиеся префиксы вручную

Изменения внутри таблиц

После того, как вы изменили названия таблиц, нужно изменить некоторые записи в таблицах options и usermeta.

Записи в таблице Options

В этой таблице надо изменить несколько записей. Для облегчения поиска можно воспользоваться поисковым запросом. Не забудьте заменить новый-префикс на ваш новый префикс:

Поиск должен показать все записи, которые нужно изменить. Для редактирования кликните два раза (или нажмите Карандаш) на каждую запись.

Записи в таблице Usermeta

Как в таблице Options, в таблице Usermeta надо заменить несколько записей. Чтобы не искать их вручную, можно воспользоваться запросом:

Не забудьте заменить новый-префикс на новый префикс, который вы добавили в wp-config.php.

После этого сайт должен начать работать с новым префиксом базы данных.

Решение проблем

Если вы получили ошибку прав доступа, или ошибку установления соединения с базой данных, вы забыли переименовать одну из таблиц или префикс записи. Вернитесь в phpMyAdmin и найдите таблицу или запись, которую вы пропустили.

Некоторые плагины предполагают, что префикс базы данных стандартный, и если вы уверены, что переименовали все таблицы и плагины, попробуйте деактивировать все плагины, и включать их по одному, чтобы найти, какой из них делает сайт недоступным. Удалите плагин или найдите ему альтернативу.

Плагины

Если вы не хотите делать это вручную, можно сделать это с помощью одного из плагинов безопасности, например, All in One WordPress Security.

Перед изменением префикса сделайте бэкап сайта и базы данных.

Префикс базы данных в Вордпресс в плагине All in One WordPress Security

Поставьте галочку, чтобы плагин сгенерировал новый префикс, или придумайте свой вариант. Плагин сделает изменения в базе данных и в файле wp-config.

Префикс базы данных в Вордпресс в плагине All in One WordPress Security

Префикс базы данных изменен на xvi0f_. Изменены префиксы 34 таблиц и сделаны изменения в таблицах options и usermeta. Процесс такой же, как в ручном режиме, но занимает меньше секунды.

В других плагинах изменение префикса базы данных делается аналогично.

Сделайте бэкап

После того, как вы изменили префикс базы данных вручную или автоматически, сделайте еще один бэкап.


Как видите, изменение префикса базы данных помогает избежать только один вид атак. Чтобы защитить сайт от других атак, установите какой-нибудь плагин безопасности и читайте Полное руководство по безопасности Вордпресс.

Оставьте комментарий