Как предотвратить атаки с использованием SQL-инъекций в WordPress

SQL-инъекция WordPress

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

В этой статье я поделюсь полезными советами по предотвращению атак SQL-инъекций в ВордПресс.

Зачем предотвращать атаки SQL-инъекций в WordPress?

SQL означает Structured Query Language, это язык программирования, который взаимодействует с базой данных сайта WP. Без этой функции веб-ресурс не сможет генерировать динамический контент.

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

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

Они также могут изменять записи в дата-центре или права доступа к профилям и проводить DDOS-атаки, затрудняя посещение сайта реальными пользователями.

Это может подорвать доверие клиентов, повлиять на работу посетителей и снизить посещаемость веб-проекта, что негативно скажется на развитии вашего малого бизнеса.

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

Итак, давайте рассмотрим несколько действенных советов, которые помогут предотвратить атаки SQL-инъекций в ВордПресс.

Регулярно обновляйте сайт и используйте брандмауэр

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

Если используете устаревший ВордПресс, рекомендую включить автоматическое улучшение до последней версии, посетив страницу на дашборде «Обновления».

Здесь просто нажмите на ссылку «Включить автоматические обновления для всех новых версий WordPress». Теперь все основные улучшения будут устанавливаться на сайт сразу после выхода.

Установка автоматических обновлений

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

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

Защита сайта от угроз

Кроме того, этот инструмент помог мне заблокировать около 450 000 WordPress-атак на мой сайт в прошлом.

Скрывайте версию WordPress

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

Однако публичное отображение может стать причиной угрозы безопасности и облегчить хакерам проведение атак SQL-инъекциями.

Отображение версии ВордПресс

Это связано с тем, что каждый вариант WordPress имеет свои уникальные уязвимости, которые злоумышленники могут использовать после обнаружения версии. Это позволит им добавлять на веб-проект компоненты вредоносного кода через незащищенные поля ввода.

Вы можете легко удалить номер версии с сайта, добавив следующий фрагмент кода в файл functions.php.

add_filter('the_generator', '__return_empty_string');

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

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

Изменение префикса базы данных WordPress

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

Самый простой способ предотвратить SQL-инъекции — изменить префикс базы данных по умолчанию на что-то уникальное, что злоумышленники не смогут угадать.

Вы можете сделать это, подключив свой сайт с помощью FTP. После этого откройте файл wp-config.php и найдите строку с изменением $table_prefix. Затем можете изменить его с простого стандартного wp_ на что-то другое, например, wp_a123456_.

$table_prefix = 'wp_a123456_';

Далее необходимо зайти в cPanel вашего хостинг-аккаунта. В этом руководстве я буду использовать Bluehost. Однако ваша cPanel может выглядеть иначе в зависимости от хостинг-компании.

Здесь переключитесь на вкладку «Дополнительно» и нажмите кнопку «Управление» рядом с разделом «PHPMyAdmin».

Как изменить префикс

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

После этого можете добавить следующий запрос в текстовое поле.

SQL запрос на сайте

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

RENAME table `wp_comments` TO `wp_a123456_comments`;
RENAME table `wp_links` TO `wp_a123456_links`;
RENAME table `wp_options` TO `wp_a123456_options`;
RENAME table `wp_postmeta` TO `wp_a123456_postmeta`;
RENAME table `wp_RENAME table `wp_commentmeta` TO `wp_a123456_commentmeta`;
posts` TO `wp_a123456_posts`;
RENAME table `wp_terms` TO `wp_a123456_terms`;
RENAME table `wp_termmeta` TO `wp_a123456_termmeta`;
RENAME table `wp_term_relationships` TO `wp_a123456_term_relationships`;
RENAME table `wp_term_taxonomy` TO `wp_a123456_term_taxonomy`;
RENAME table `wp_usermeta` TO `wp_a123456_usermeta`;
RENAME table `wp_users` TO `wp_a123456_users`;

Проверка данных пользователя

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

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

Например, человек не сможет отправить свою форму, если в поле адреса электронной почты не будет символа «@». Добавив эту проверку, вы сможете предотвратить атаки SQL-инъекций.

Проверка данных электронной почты

Для этого понадобится Formidable Forms, который является продвинутым плагином для построения форм. Он поставляется с опцией «Input Mask Format», где можно добавить формат, которому должны следовать пользователи, чтобы отправить данные.

Также можно выбрать особый вариант для телефонных номеров или отдельных текстовых полей.

Формат на мобильных номеров

Если не хотите проверять поля, то я рекомендую WPForms, потому что это лучший плагин для контактных форм, который поставляется с полной защитой от спама и поддержкой Google reCAPTCHA.

С его помощью вы можете добавить выпадающие меню и флажки. Это затруднит хакерам добавление вредоносных данных.

Плагин для создания форм

Ограничьте доступ к ролям и разрешениям пользователей

Еще один совет по предотвращению атак SQL-инъекций ВордПресс — ограничить доступ пользователей к сайту.

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

Остальным можно оставить конкретные функции, необходимые им для выполнения своей работы. Это позволит сократить доступ пользователей к базе данных и предотвратить атаки SQL-инъекций.

Сделать это можно с помощью бесплатного плагина Remove Dashboard Access. После активации просто перейдите на страницу «Настройки», далее «Доступ к панели мониторинга». Там вы сможете определить, какие роли получат доступ к дашборду.

Ограничение доступа для пользователей

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

Создание кастомных сообщений об ошибках базы данных

Иногда пользователи сталкиваются с ошибкой базы данных на сайте, которая может отображать важную информацию, делая ее уязвимой для атак SQL-инъекций.

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

<?php // custom WordPress database error page
  header('HTTP/1.1 503 Service Temporarily Unavailable');
  header('Status: 503 Service Temporarily Unavailable');
  header('Retry-After: 600'); // 1 hour = 3600 seconds
  // If you wish to email yourself upon an error
  // mail("your@email.com", "Database Error", "There is a problem with the database!", "From: Db Error Watching");
?>
<!DOCTYPE HTML>
<html>
<head>
  <title>Database Error</title>
  <style>
    body { 
      padding: 20px; 
      background: red; 
      color: white; 
      font-size: 60px; 
    }
  </style>
</head>
<body>
  You got problems.
</body>

После этого подключите ресурс к FTP-программе и загрузите только что созданный файл в директорию /wp-content/ вашего сайта.

Теперь, когда пользователи столкнутся с ошибкой базы данных, они просто увидят сообщение о проблеме, информирующее их без раскрытия какой-либо конфиденциальной информации.

Кастомное сообщение для пользователей

Кроме того, заголовок «Database Error» будет отображаться во вкладке веб-браузера.

Удалите ненужный функционал базы данных

Чтобы предотвратить атаки SQL-инъекций, вы должны попытаться очистить весь функционал базы данных и файлы, которые не нужны на сайте.

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

Для этот мы рекомендую WP-Optimize. Это замечательный плагин, который удаляет ненужные таблицы, посты, черновики, комментарии, публикации, пингбэки, метаданные записей и многое другое.

Удаление записей и комментариев

Он убирает все ненужные файлы и оптимизирует базу данных, делая ее более безопасной и быстрой.

Я надеюсь, что эта статья помогла вам узнать, как предотвратить атаки SQL-инъекций на WordPress.

Рейтинг
( 1 оценка, среднее 5 из 5 )
Александр/ автор статьи

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

Загрузка ...
Шаблоны для WordPress