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

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

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

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

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

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

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

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

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

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. Процесс такой же, как в ручном режиме, но занимает меньше секунды.

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

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

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


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

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