Как предотвратить SQL-инъекции? Часть 2

5. Скройте свою версию WordPress

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

Если вы используете старую версию WordPress, вы всё равно можете скрыть её номер:

  • Используйте плагин безопасности, такой как Sucuri или Wordfence, чтобы удалить отображение номера версии.
  • Добавьте небольшой фрагмент кода в файл functions.php.


function hide_wordpress_version() {
return '';
}
add_filter('the_generator', 'hide_wordpress_version');

Этот код скрывает номер версии WordPress в файле `header.php` вашей темы и в RSS-лентах. Это добавляет дополнительный уровень безопасности, затрудняя хакерам определение используемой версии WordPress.

6. Создавайте пользовательские уведомления об ошибках в базе данных

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

Для этого скопируйте и вставьте код в новый файл `db-error.php`. Джефф Старр в своей классической статье 2009 года предлагает пример, как это можно сделать.


<?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 want to send an email to 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: 50px; background: #04A9EA; color: #fff; font-size: 30px; }
      .box { display: flex; align-items: center; justify-content: center; }
    </style>
</head>

  <body>
    <div class="box">
      <h1>Something went wrong</h1>
    </div>
  </body>
</html>

Теперь сохраните файл в корне вашей папки /wp-content/, чтобы изменения вступили в силу.

7. Установите ограничения доступа и разрешений для ролей пользователей

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

8. Включите двухфакторную аутентификацию

Отличный способ защитить сайт на WordPress — использовать двухфакторную аутентификацию (2FA). Она добавляет дополнительный уровень безопасности при входе в систему. Даже если хакер узнает ваш пароль, ему потребуется код 2FA для доступа.

Настройка 2FA на WordPress выполняется следующим образом:

  1. Установите плагин двухфакторной аутентификации. Популярные варианты: Google Authenticator от miniOrange, Two Factor Authentication и WP 2FA от Melapress.
  2. Выберите метод аутентификации. Обычно предлагаются три варианта: SMS-коды, приложения для аутентификации или ключи безопасности.
  3. Привяжите свою учетную запись. Если используете Google Authenticator, отсканируйте QR-код в настройках плагина. Для SMS введите номер телефона и получите коды по текстовому сообщению.
  4. Протестируйте систему. Выйдите из WordPress и войдите снова, введя имя пользователя и пароль, а затем код 2FA.
  5. Включите резервные коды (по желанию). Некоторые плагины позволяют генерировать резервные коды. Сохраните их в надёжном месте на случай потери доступа к телефону или электронной почте.

9. Удалите все ненужные функции базы данных

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

10. Отслеживайте необычную активность на своем сайте.

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

11. Регулярно создавайте резервные копии своего сайта

Крайне важно регулярно создавать резервные копии вашего сайта. Они позволяют быстро восстановить его в случае взлома или сбоя. Делайте резервные копии перед значительными обновлениями сайта, тем или плагинов.

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

Многие плагины безопасности предлагают автоматическое резервное копирование. Вы также можете использовать специализированные плагины, такие как UpdraftPlus или Solid Security. Храните резервные копии в разных местах, например, в Dropbox или Google Drive, чтобы обеспечить дополнительную безопасность.

Как удалить SQL-инъекцию с вашего сайта

Если ваш сайт уже подвергся атаке SQL-инъекции, вот шаги, которые помогут справиться с ситуацией:

  1. Проверьте базу данных: Найдите странные записи в учетных записях пользователей, контенте или настройках плагинов.
  2. Удалите вредоносный код: Используйте плагины безопасности, такие как Wordfence или Sucuri, чтобы обнаружить и удалить вредоносный код.
  3. Восстановите резервную копию: Если ущерб значительный, восстановите сайт из чистой резервной копии.
  4. Измените все пароли: Обновите пароли для администратора WordPress, базы данных и учетной записи хостинга.
  5. Повысьте безопасность: После очистки сайта выполните ранее описанные 11 шагов, чтобы предотвратить будущие атаки.

Вывод

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

Многие игнорируют безопасность, пока не станет слишком поздно. Хакеры атакуют сайты с любым уровнем защиты, поэтому даже небольшие блоги подвергаются риску. Исправление взломанного сайта требует времени и ресурсов, но предотвращение атаки — гораздо проще.

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


Источник: www.smashingmagazine.com 

Условия передачи информации

Я даю согласие OOO «ЭсБилдер» (далее «BINN») на обработку моих персональных данных в соответствии со статьями 6, 9, 10, 18 Федерального закона от 27 июля 2006 года № 152-ФЗ «О персональных данных», указанных в онлайн-форме и/или предоставленных мною с целью:

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

Настоящее согласие применяется в отношении обработки следующих данных: имя, номер телефона, адрес электронной почты (E-mail).

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

Согласие может быть отозвано мною в любой момент путем направления в BINN подписанного мною письменного заявления.