У цій статті описані найпоширеніші проблеми безпеки WordPress і способи їх вирішення, включаючи поради, як уникнути злому.

Безпека WordPress була важливою темою з тих пір, як ця система управління вмістом (CMS) була випущена в 2003 році. Як і будь-яке популярне програмне забезпечення з довгою і багатою історією, CMS WordPress також може бути мішенню хакерів. Зловмисні дії можуть включати міжсайтові сценарні атаки, sql-ін’єкції, атаки грубої сили та ряд інших способів отримання несанкціонованого доступу.

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

Увімкніть правильні дозволи на сервері для wp-config і htaccess

Змінити:

644 -rw-r–r– /home/user/wp-config.php

644 -rw-r–r– /home/user/cgi-bin/.htaccess

на захищені дозволи:

600 -rw——- /home/user/wp-config.php

600 -rw—— /home/user/cgi-bin/.htaccess

Використовуйте останню та безпечну версію PHP

Станом на 6 травня 2022 року останньою та рекомендованою версією PHP для WordPress є 8.0. Ви завжди можете перевірити підтримувані та безпечні версії PHP, перейшовши за цим посиланням. Як і будь-яке інше програмне забезпечення, підтримання всього програмного забезпечення в актуальному стані є важливим фактором безпеки WP.

Відключення редагування тем оформлення і плагінів на рівні адмінки WordPress

Якщо хакери отримають доступ до вашого облікового запису адміністратора, їм буде дуже легко ввести шкідливий код у ваші теми та плагіни WordPress. Ми будемо використовувати DISALLOW_FILE_EDIT для запобігання редагуванню файлів і підвищення безпеки сайту.

Розглянемо нижче, як це зробити:

  1. Спочатку відкрийте файл wp-config.php використовуючи будь-який текстовий редактор.
  2. Усередині цього файлу знайдіть рядок /* That’s all, stop editing! Happy blogging. */ і вставте над ним наступний код: define( 'DISALLOW_FILE_EDIT,' true );
  3. Збережіть зміни і закрийте файл.
  4. Якщо ви все зробили правильно, то посилання «Plugins > Editor» і «Appearance > Editor» більше не повинні бути видні в панелі управління.

Підтримуйте свої плагіни WordPress в актуальному стані

Також гарною ідеєю є стежити за актуальними блогами та фан-групами WP у соціальних мережах. Багато користувачів WordPress діляться повідомленнями про критичні помилки в певних плагінах WordPress. Якщо ви бачите помилку щодо плагіна, який ви використовуєте на своєму сайті WordPress, негайно оновіть. Крім того, не забудьте видалити невикористані плагіни, щоб уникнути непотрібних вразливостей у вашій системі безпеки.

Встановлюйте теми та плагіни WordPress лише з надійних джерел

Найбезпечнішим способом є використання офіційної бази даних/репозиторій.

Теми WordPress можна знайти тут,

а надійні плагіни – тут.

Файли в цьому сховищі були проскановані та, очевидно,перед публікацією проскановані на наявність шкідливих програм.

Зміна wp prefix в базі даних під час установки WordPress

За замовчуванням установка wordPress відбувається з приставкою wp_ , але в процесі варто змінити її на свою. Таким чином, ми ускладнимо доступ шкідливого програмного забезпечення до нашої бази даних і можливість витягувати дані.

Не використовуйте стандартний логін “Admin”. Використовуйте надійні паролі

Обов’язково змініть логін на свій. Також не забувайте, що зламати складні паролі за допомогою декількох різних символів набагато складніше.

Вимкніть реєстрацію користувача, якщо вона вам не потрібна

Для цього потрібно:

  1. Зайдіть в Налаштування (Settings), Загальні (General).
  2. Зніміть прапорець “Будь-хто може зареєструватися” (Anyone can register) у розділі Членство (Membership).
  3. Збережіть зміни.

Вимкніть коментарі, якщо вони вам не потрібні

Для цього існує кілька способів. Ви можете використовувати власний код, вбудовані параметри WordPress або плагін.

Щоб відключити коментарі глобально за допомогою самого WordPress, виконайте наступні дії:

  1. Перейдіть до розділу Налаштування (Settings), Розділ Обговорення (Discussion)

  2. Зніміть прапорець поруч із пунктом “Дозволити користувачам коментувати нові статті” (Allow people to post comments on new articles).
  3. Збережіть зміни.

Як ми вже говорили раніше, ви також можете написати власний код або використовувати плагін для досягнення того ж ефекту, але в цьому посібнику ми представили лише найшвидший варіант.

Налаштуйте robots.txt для блокування несанкціонованого доступу до файлів WordPress

Цей файл, розташований в головній папці домену, служить покажчиком для гугл-сканерів , показуючи, які сторінки їм слід відвідувати і індексувати, а які ні. Ви можете скористатися прикладом, представленим у сірому полі тут (не забудьте змінити http://www.example.com/ на власний домен).

Ви також можете ознайомитися з офіційним посібником Google з robots.txt..

Захистіть себе від підбору облікових записів користувачів

Підбір облікових записів користувачів – це форма зловмисної діяльності, яка дозволяє хакерам використовувати атаки грубої сили для отримання доступу до облікових записів користувачів. Зверніть увагу на дискусію на StackExchange про те, як можна знизити ризик подібних атак.

Безпечний доступ до wp-admin / wp-login.php, двофакторна аутентифікація, обмежена кількість спроб входу

Ці заходи можуть бути реалізовані різними способами. Найбільш популярним є обмеження доступу до певних IP-адрес або відображення додаткового вікна з інформацією про аутентифікацію. Ми також можемо встановити обмеження на кількість спроб входу або навіть використовувати двофакторну аутентифікацію.

Двофакторна аутентифікація

Щоб увімкнути цю функцію, спочатку завантажте плагін Google Authenticator.

Після встановлення перейдіть на сторінку свого профілю та встановіть прапорець «Active» у налаштуваннях Google Authenticator.

Тепер прийшов час встановити додаток Google Authenticator для Android

або iOS.

Після запуску автентифікатора вам буде запропоновано ввести код або відсканувати QR-код. Поверніться до налаштувань плагіна і скопіюйте код у додаток, або виберіть «Показати/приховати QR-код» (Show/Hide QR code) і відскануйте його за допомогою телефону.

Почнеться автоматичне налаштування, потрібно прийняти всі зміни і потім натиснути «Оновити профіль» (Update profile) на підсторінці «Ваш профіль» (Your profile). Відтепер кожна спроба входу вимагатиме двофакторної аутентифікації на сторінці входу в WordPress.

Обмежте кількість спроб входу в систему

Як уже згадувалося раніше, ще одним методом запобігання атакам грубої сили є обмеження кількості спроб входу користувача. Як це зробити?

Мабуть, найпростішим рішенням є використання одного з багатьох плагінів безпеки WordPress, таких як WP Limit Login Attempts Limit від Arshid. Ви можете завантажити його тут.

Регулярно створюйте резервні копії

Навіть найкращого захисту може бути недостатньо, щоб врятувати ваш сайт від хакерів WordPress. Тому переконайтеся, що у вас завжди є резервна копія на випадок найгіршого. Крім того, ви можете використовувати наступний плагін безпеки.

Приховування інформації про версії WordPress, які ви використовуєте

Інформація про вашу версію WP може бути корисною для хакерів, тому немає необхідності вільно ділитися нею. По-перше, заблокуйте доступ до файлу, додавши наступні рядки коду в файл .htaccess:

<files readme.html>    
    order allow,deny
    deny from all    
    </files>

По-друге, ви можете використовувати плагін безпеки для деактивації цієї інформації. Одним з таких плагінів є Sucuri, який автоматично приховає цю інформацію після активації, але напевно ви можете перевірити це, перейшовши в «Налаштування» (Settings) > вкладку «Посилення» (Hardening).

Ви також можете видалити інформацію про версію, додавши наступні рядки коду до плагіна для конкретного сайту або плагіна Code Snippets:

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

По-третє, ви можете видалити інформацію про версію WP з файлів css/JS, завантажених на сайт. Ось посилання на те, як це зробити, слідуючи рекомендаціям користувача tjhole.

Блокувати виконання PHP-скриптів в тих WP каталогах, де це не потрібно

Забороніть запуск файлів PHP в каталогах, не призначених для цього, щоб підвищити безпеку вашої платформи. Дотримуючись рішень на веб-сайті wpbeginner, відкрийте текстовий редактор і введіть наступний код:

<Files *.php> deny from all </Files>

Збережіть цей текстовий файл як .htaccess і завантажте його в папку /wp-content/uploads/ на своєму сайті.

Вимкніть доступ до REST API свого WordPress

Якщо ви не плануєте використовувати цей API, ви можете відключити доступ до нього за допомогою наступного плагіна.

Обмеження або вимкнення доступу до XML-RPC

Якщо ви не використовуєте XML-RPC, ви також можете вимкнути його за допомогою:

function remove_xmlrpc_pingback_ping( $methods ) { unset($methods['pingback.ping']); unset($headers['X-Pingback']); return $methods; } add_filter('xmlrpc_enabled', '__return_false'); add_filter('xmlrpc_methods', 'remove_xmlrpc_pingback_ping' );

або за допомогою .htaccess:

<Files xmlrpc.php> Order deny,allow Deny from all </Files>

Перегляньте це посилання, якщо вам потрібна додаткова інформація.

Переконайтеся, що на вашому веб-сайті є сертифікат SSL

Теоретично плагін можна використовувати, але ми рекомендуємо діяти вручну, як запропоновано на цьому сайті (примітка перекладача: стаття англійською мовою). Ознайомтеся з “Як правильно включити SSL в WordPress” і дотримуйтесь інструкцій.

Висновок

Безпека повинна бути головним пріоритетом будь-якого бізнесу, великого чи малого. Сподіваємося, що ці рекомендації будуть корисні в боротьбі з хакерами і шкідливими програмами. Обов’язково слідкуйте за нашими статтями, щоб отримати інші поради та рекомендації.