• WordPress

Як захистити сайт на WordPress від реальних загроз

  • Felix Rose-Collins
  • 18 min read

Вступ

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

Для захисту сайту не потрібні навички інженера з безпеки. Вам знадобляться кілька базових заходів захисту, які добре працюють у поєднанні. Заблокуйте ключові налаштування WordPress. Додайте правила для сервера. Постійно оновлюйте все. Робіть резервні копії та моніторинг обов’язковими. Ви виявите проблеми на ранній стадії та швидко відновите роботу, а не виявите збитки через кілька тижнів.

Цей посібник є практичним. Ми почнемо з найважливіших основ, а потім перейдемо до більш глибокого зміцнення безпеки.

Поширені атаки на безпеку сайтів WordPress {#common-security-attacks-on-wordpress-sites}

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

Common Security Attacks on WordPress Sites

Ось найпоширеніші ризики, з якими ви зіткнетеся на реальних сайтах WordPress.

Брут-форс {#brute-force}

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

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

Вразливі плагіни та теми {#vulnerable-plugins-and-themes}

Проблеми з ядром WordPress трапляються, але справжньою проблемою зазвичай є плагіни та теми. Зловмисники націлюються на них, оскільки виявлення версії є простим, а експлойт-код поширюється швидко.

Зустрічайте Ranktracker

Універсальна платформа для ефективного SEO

За кожним успішним бізнесом стоїть потужна SEO-кампанія. Але з незліченною кількістю інструментів і методів оптимізації на вибір може бути важко зрозуміти, з чого почати. Що ж, не бійтеся, адже у мене є те, що вам допоможе. Представляємо вам універсальну платформу Ranktracker для ефективного SEO

Ми нарешті зробили реєстрацію на Ranktracker абсолютно безкоштовною!

Створіть безкоштовний обліковий запис

Або Увійдіть, використовуючи свої облікові дані

Серед тривожних ознак — занедбані плагіни, безкоштовні копії преміум-інструментів та затримки з оновленнями. Наслідки варіюються від віддаленого виконання коду до крадіжки баз даних та введення SEO-спаму.

Введення шкідливого програмного забезпечення {#malware-injection}

Шкідливе програмне забезпечення часто ховається в місцях, які доступні для запису або залишаються поза увагою. Це може бути шкідливий скрипт, розміщений у папці wp-content/uploads/, файл плагіна, непомітно змінений за допомогою хаотичного PHP-коду, або код, введений у базу даних, щоб поширюватися через шаблони або публікації.

Типові ознаки включають перенаправлення тільки на мобільні пристрої, загадкових адміністраторів, дивні завдання cron, незвичайні заплановані завдання, сплески вихідних запитів та попередження про зловживання Search Console або хостингом. Це часто призводить до повторних інфекцій, спаму та ризику потрапляння до чорного списку.

SEO-спам-атаки {#seo-spam-attacks}

SEO-спам не завжди помітний для людей. Зловмисники додають приховані посилання, спам-сторінки або контент, який бачать лише сканери. Вони можуть вводити спам у базу даних, додавати несанкціоновані карти сайту або змінювати файл .htaccess, щоб показувати ботам інший контент.

Перші ознаки зазвичай з’являються у результатах пошуку: дивні індексовані URL-адреси та раптові падіння трафіку. Ваш домен починає ранжуватися за спамом, а справжні сторінки втрачають видимість. Очищення займає більше часу, оскільки спам часто розкиданий по всій базі даних.

SQL-ін'єкція {#sql-injection}

Впровадження SQL відбувається, коли плагін або власний код надсилає небезпечні дані до бази даних. Типові ознаки включають дивні рядки запитів URL, попередження про SQLi у журналах брандмауера та раптові сплески навантаження на базу даних. Це може призвести до викрадення даних, змін контенту та постійного доступу, якщо зловмисники змінюють користувачів або налаштування.

Міжсайтова підробка запитів {#cross-site-request-forgery}

Підробка міжсайтових запитів (CSRF) відбувається, коли ви ввійшли в WordPress, а плагін не виконує належних перевірок безпеки. Зловмисник може обдурити вас, змусивши натиснути посилання, яке запускає такі дії, як створення користувачів, зміна електронної пошти або оновлення налаштувань.

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

Міжсайтовий скриптинг {#cross-site-scripting}

Міжсайтовий скриптинг (XSS) відбувається, коли плагін або тема показує вміст користувача, не очистивши його попередньо. Збережений XSS є гіршим, оскільки шкідливий код зберігається і може запуститися пізніше, навіть в адміністративній області, дозволяючи зловмисникам змінювати налаштування, додавати користувачів або встановлювати плагіни.

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

Основні елементи базової безпеки {#baseline-security-essentials}

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

Виберіть безпечний хостинг для WordPress {#choose-a-secure-wordpress-hosting}

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

Ось що повинен включати хостинг, орієнтований на безпеку.

  • Ізоляція та безпечні налаштування за замовчуванням

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

  • Захист на рівні сервера

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

  • Резервне копіювання та швидке відновлення

Коли щось йде не так, швидкість має значення. Автоматичне резервне копіювання та швидке відновлення рятують ваш бізнес.

  • Видимість

Журнали доступу, журнали помилок та показники продуктивності допомагають виявити спроби брутфорсу, проблеми з PHP та піки навантаження на ресурси, перш ніж вони призведуть до збою.

  • SSL

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

Зустрічайте Ranktracker

Універсальна платформа для ефективного SEO

За кожним успішним бізнесом стоїть потужна SEO-кампанія. Але з незліченною кількістю інструментів і методів оптимізації на вибір може бути важко зрозуміти, з чого почати. Що ж, не бійтеся, адже у мене є те, що вам допоможе. Представляємо вам універсальну платформу Ranktracker для ефективного SEO

Ми нарешті зробили реєстрацію на Ranktracker абсолютно безкоштовною!

Створіть безкоштовний обліковий запис

Або Увійдіть, використовуючи свої облікові дані

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

Cloudways також пропонує міграцію веб-сайтів за допомогою експертів, і перша міграція включена безкоштовно.

Встановіть SSL-сертифікат {#install-an-ssl-certificate}

Чи помічали ви коли-небудь маленьку іконку замка поруч з URL-адресою веб-сайту? Це означає, що ваш сайт використовує HTTPS. Це повідомляє відвідувачам, що з’єднання з вашим сайтом є безпечним, а їхні дані — у безпеці. Без цього хакери могли б перехопити конфіденційні дані, такі як інформація для входу або платіжні дані.

SSL (Secure Sockets Layer) шифрує дані між вашим веб-сайтом та його відвідувачами. Він захищає цей трафік, щоб паролі та дані клієнтів не передавалися у вигляді звичайного тексту. Незалежно від того, чи ведете ви блог, магазин чи портфоліо, встановлення SSL-сертифіката більше не є опцією; це необхідність.

Виберіть варіант SSL

Більшість хостинг-провайдерів пропонують безкоштовний варіант SSL, який можна увімкнути за кілька кліків. На Cloudways ви можете увімкнути безкоштовний сертифікат Let’s Encrypt прямо з платформи.

Якщо вам потрібен сертифікат для бізнесу або з певною валідацією, ви також можете придбати його у таких провайдерів, як DigiCert або Sectigo.

Створіть CSR

Запит на підписання сертифіката (CSR) — це запит, який ваш сервер надсилає провайдеру сертифікатів. Зазвичай опція «Створити CSR» знаходиться у вашій панелі управління хостингом.

Введіть основні дані, такі як домен, назва організації та місцезнаходження, а потім створіть CSR. Ваш провайдер використовує його для видачі сертифіката.

Підтвердіть право власності на домен

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

Встановіть сертифікат

Встановіть або завантажте сертифікат у панелі управління хостингом. Знайдіть розділ «Управління SSL» або «Налаштування безпеки», а потім дотримуйтесь вказівок, щоб прив’язати його до потрібного домену.

Install the certificate

Примусове використання HTTPS

Після встановлення SSL переконайтеся, що весь трафік за замовчуванням перенаправляється на HTTPS. Це гарантує, що відвідувачі завжди потрапляють на захищену версію вашого сайту.

Ви можете зробити це за допомогою плагіна, такого як Really Simple SSL, або ви можете примусово використовувати HTTPS для панелі адміністратора WordPress за допомогою цього параметра у файлі wp-config.php:

Оновлення внутрішніх посилань

Якщо ваш сайт все ще посилається на старі URL-адреси HTTP у налаштуваннях або базі даних, браузери можуть показувати попередження про змішаний вміст. Оновіть ці внутрішні посилання, щоб все завантажувалося через HTTPS.

Окрім безпеки, SSL формує довіру та може допомогти з SEO. Це швидке оновлення, яке показує відвідувачам, що ви серйозно ставитеся до конфіденційності.

Оновлюйте WordPress, теми та плагіни {#keep-wordpress-themes-and-plugins-updated}

Оновлення — це безпека. Більшість випусків виправляють відомі уразливості. Як тільки уразливість стає публічною, боти сканують сайти, які все ще працюють на старій версії, і саме в цей момент відбувається зараження.

Оновлюйте ядро WordPress

Оновлення ядра часто містять виправлення безпеки, навіть якщо реліз здається незначним.

Update WordPress Core

Виконайте ці кроки, щоб оновити ядро WordPress:

  • Перейдіть до панелі адміністратора WordPress → Оновлення.
  • У розділі WordPress натисніть «Оновити зараз», якщо оновлення доступне.
  • Після завершення відкрийте свій сайт і переконайтеся, що він завантажується і ви можете увійти.

Практична процедура оновлення

  • Увімкніть автоматичні оновлення принаймні для другорядних версій.
  • Використовуйте тестове середовище для значних оновлень.
  • Зарезервуйте щомісячний час для технічного обслуговування, щоб встановити виправлення та перевірити регресію.

Якщо ви обираєте хостингову платформу, таку як Cloudways, функція SafeUpdates планує оновлення ядра WordPress, плагінів та тем через робочий процес резервного копіювання та тестування перед застосуванням змін у виробничому середовищі.

Оновлення тем

Виконайте наступні кроки, щоб оновити тему WordPress:

  • Перейдіть до панелі адміністратора WordPress → «Оновлення».

Updates

  • Якщо там перелічені оновлення тем, встановіть прапорці, а потім натисніть «Оновити теми».
  • Після завершення перевірте, чи правильно завантажуються головна сторінка, меню та ключові сторінки.

Видаліть невикористовувані плагіни та теми

Неактивні плагіни та теми залишаються на вашому сервері. Видаліть їх, щоб зменшити ризики безпеки та звузити площину атаки.

themes

Перелік дій для очищення:

  • Видаліть невикористовувані плагіни та теми. Деактивація залишає після себе файли.
  • Спочатку протестуйте видалення на тестовому сервері для плагінів, пов’язаних із формами, кешуванням, SEO або електронною комерцією.
  • Зберігайте лише активну тему та одну резервну копію.
  • Після очищення перевірте, чи працюють вхід, форми, оформлення замовлення та пошук.
  • Щомісяця переглядайте встановлені плагіни та теми.

​​Виконайте ці кроки, щоб видалити невикористовуваний плагін WordPress:

  • У панелі адміністратора WordPress перейдіть до розділу «Плагіни » → «Встановлені плагіни».
  • Знайдіть плагін, який вам не потрібен.
  • Натисніть «Деактивувати». Після цього з’явиться опція «Видалити ».
  • Натисніть «Видалити» та підтвердіть, якщо з’явиться запит.

Далі виконайте наступні кроки, щоб видалити невикористовувану тему:

  • У панелі адміністратора WordPress перейдіть до «Зовнішній вигляд » → «Теми».
  • Натисніть на тему, яка вам не потрібна.
  • Натисніть «Видалити» та підтвердіть, якщо з’явиться запит.

Вибирайте надійні теми та плагіни

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

Короткий перелік перевірок перед встановленням:

  • Уникайте занедбаних плагінів і тем.
  • Уникайте нульових плагінів і тем.
  • Будьте обережні з завантаженнями поза маркетплейсом, якщо ви не довіряєте продавцю.
  • Ігноруйте все, що не оновлювалося останнім часом або не підтримує вашу поточну версію WordPress.

Практичні заходи безпеки {#practical-security-operations}

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

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

Використовуйте двофакторну автентифікацію {#use-two-factor-authentication}

Двофакторна автентифікація блокує більшість атак типу «credential stuffing» та захоплення облікових записів через повторне використання облікових даних. Увімкнення цієї функції для облікових записів адміністратора блокує вхід навіть у разі викрадення пароля.

Щоб увімкнути 2FA на вашому сайті WordPress, виберіть надійний плагін 2FA та додаток-аутентифікатор на вашому телефоні. Популярні варіанти плагінів 2FA включають miniOrange 2FA, WP 2FA, Wordfence Login Security та Two Factor.

Увімкніть двофакторну автентифікацію:

  • У панелі управління WordPress перейдіть до «Плагіни»«Додати новий».
  • Знайдіть плагін 2FA, а потім встановіть і активуйте його.
  • Відкрийте меню плагіна на лівій бічній панелі, зазвичай у розділі «Безпека» або як окремий пункт.
  • Знайдіть «Двофакторна автентифікація» або «2FA», а потім виберіть додаток-автентифікатор.
  • Відскануйте QR-код у вашому додатку-аутентифікаторі або введіть ключ налаштування.
  • Введіть одноразовий код для підтвердження, а потім натисніть «Увімкнути » або «Активувати».
  • Завантажте коди відновлення та збережіть їх у своєму менеджері паролів.

Впровадити 2FA для ролей адміністратора:

  • Відкрийте налаштування плагіна, зазвичай вони знаходяться в розділі «Налаштування » або «Безпека » → «2FA».
  • Увімкніть «Вимагати 2FA».
  • Застосуйте цю функцію для ролей «Адміністратор» та «Редактор», а також додайте «Менеджер магазину», якщо ви керуєте інтернет-магазином.
  • Збережіть зміни після того, як ви зареєстрували принаймні два облікові записи адміністратора на різних пристроях.

2FA

Змініть URL-адресу входу за замовчуванням {#change-the-default-login-url}

Більшість сайтів WordPress використовують однакові URL-адреси за замовчуванням: /wp-login.php для входу та /wp-admin/ для панелі адміністратора. Боти знають ці URL-адреси, тому вони намагаються їх використовувати знову і знову.

Зміна URL-адреси входу не зупинить рішучого зловмисника, але може зменшити кількість автоматизованого спаму та спроб грубої сили.

Виконайте ці кроки, щоб змінити URL-адресу входу за замовчуванням у WordPress:

  • Перейдіть до «Плагіни » → «Додати новий».
  • Встановіть плагін для зміни URL-адреси входу, а потім активуйте його.
  • Відкрийте налаштування плагіна в розділі «Налаштування » або «Безпека».
  • Встановіть нову URL- адресу для входу та збережіть зміни.
  • Вийдіть із системи та перевірте нову URL-адресу в вікні інкогніто.

Використовуйте унікальне ім’я користувача адміністратора {#use-a-unique-admin-username}

** **«admin» — це перше припущення у кожному списку для атак методом грубої сили. Використання цього імені надає зловмисникам половину необхідної інформації.

Виконайте ці кроки, щоб використовувати унікальне ім’я адміністратора в WordPress:

  • Перейдіть до розділу «Користувачі»«Додати нового».
  • Створіть нового користувача з унікальним іменем користувача. Не використовуйте назву вашого домену, назву бренду або префікс електронної пошти.
  • Встановіть роль «Адміністратор», а потім створіть обліковий запис.
  • Вийдіть із системи та увійдіть знову під новим обліковим записом адміністратора.
  • Перейдіть до «Користувачі » → «Усі користувачі».
  • Знайдіть старий обліковий запис адміністратора та або змініть його роль на нижчу, або видаліть його. Якщо ви видалите його, призначте його вміст новому адміністратору, коли WordPress запропонує вам це зробити.

Обмежте кількість спроб входу {#limit-login-attempts}

Не дозволяйте ботам пробувати необмежену кількість паролів. Після кількох невдалих спроб на деякий час заблокуйте IP-адресу.

Спочатку прості варіанти

  • Встановіть плагін, що контролює обмеження швидкості, наприклад Wordfence, Limit Login Attempts Reloaded або Loginizer.
  • Увімкніть обмеження швидкості в панелі управління брандмауером вашого хостингу, якщо така функція доступна.

Розширена конфігурація сервера

Приклад обмеження швидкості в Nginx (рекомендується, якщо ви контролюєте конфігурацію Nginx):

Додайте це у ваш контекст Nginx HTTP:

Потім додайте обмеження для кінцевої точки входу у ваш блок сервера:

Порада: Збільште значення «rate» або «burst», якщо легітимні користувачі блокуються. Ретельно протестуйте.

Використовуйте надійні паролі адміністратора {#use-strong-admin-passwords}

Паролі адміністратора не повинні бути такими, що легко запам'ятовуються. Вони повинні бути важкими для вгадування. Використовуйте менеджер паролів для генерації довгих, випадкових паролів і переконайтеся, що кожен обліковий запис адміністратора має свій унікальний пароль. Таким чином, якщо одна служба буде зламана, ваш доступ до адміністратора WordPress не буде втрачено.

Поради щодо налаштування:** **

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

Виконайте ці кроки, щоб змінити пароль адміністратора в WordPress:

  • Перейдіть до «Користувачі » → «Усі користувачі».
  • Відредагуйте обліковий запис адміністратора.
  • Натисніть «Встановити новий пароль», а потім «Оновити користувача».

Використовуйте рекомендовані плагіни безпеки для WordPress {#use-recommended-wordpress-security-plugins}

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

Хороший плагін безпеки включає:

  • Моніторинг цілісності файлів для виявлення несподіваних змін
  • Захист входу та обов'язкове використання 2FA
  • Сканування на наявність шкідливого програмного забезпечення з чітким шляхом очищення та відновлення
  • Сповіщення та журнали аудиту, які можна реально переглянути
  • Основні правила брандмауера

Як тільки ви зрозумієте, що саме вам потрібно, встановіть один із надійних плагінів, таких як Wordfence, Sucuri або All In One WP Security. Ці інструменти забезпечують захист входу, виявлення змін у файлах та ведення журналів, а також можуть блокувати багато поширених атак, зокрема спроби грубої сили.

Виконайте ці кроки, щоб встановити плагін безпеки WordPress:

  • Перейдіть до «Плагіни » → «Додати новий».
  • Знайдіть плагін безпеки.
  • Натисніть «Встановити зараз», а потім «Активувати».
  • Відкрийте плагін у лівій бічній панелі та запустіть майстер налаштування, якщо він є.

Поради щодо налаштування:

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

Усунення несправностей:

  • Якщо вас заблокували в адмінці WordPress, спочатку перевірте правила брандмауера та зменшіть рівень суворості.
  • Додайте свою IP-адресу до білого списку, щоб не заблокувати доступ власній команді.
  • Перегляньте журнали перед тим, як вимкнути захист, щоб побачити, що спричинило блокування.

Використовуйте брандмауер та сканування на наявність шкідливого програмного забезпечення {#use-a-firewall-and-malware-scanning}

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

Якщо ви не контролюєте конфігурацію сервера, використовуйте панель управління брандмауером вашого хостингу або плагін безпеки, такий як Wordfence або Sucuri, щоб обмежити кількість спроб входу та обмежити або заблокувати XML-RPC.**

Налаштування брандмауера

Використовуйте кілька рівнів захисту. WAF на периферії, правила сервера для зловмисного трафіку та сканування на наявність шкідливого програмного забезпечення для очищення.

Firewall setup

На керованих платформах ви можете увімкнути вбудований брандмауер веб-додатків із блокуванням за IP-адресою або країною. Наприклад, Cloudways пропонує додатковий модуль Cloudflare Enterprise для фільтрації на периферії та захисту від ботів.

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

Скануйте на наявність несподіваних змін у файлах та ін'єкцій у бази даних (спам-посилання, приховані скрипти).

Заплануйте регулярні перевірки на:

  • Зміни файлів та невідомий PHP у wp-content/uploads
  • Спам у базі даних або вставлений код
  • Підозрілі завдання cron та вихідні з'єднання

Cloudways надає додаток Malware Protection на базі Imunify360 для сканування на рівні сервера та автоматичного очищення.

Виконайте ці кроки, щоб очистити WordPress від шкідливого програмного забезпечення:

  • Увімкніть режим технічного обслуговування.
  • Визначте точку входу (вразливий плагін, слабкі облікові дані).
  • Змініть усі секретні дані (паролі адміністратора/бази даних, солі, ключі SSH).
  • Відновіть систему з чистої резервної копії.
  • Виправте першопричину перед запуском у виробництво.

Розширене технічне зміцнення {#advanced-technical-hardening}

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

Захистіть файл wp-config.php {#secure-the-wp-config-php-file}

Файл wp-config.php містить облікові дані бази даних та секретні ключі. Ставтеся до нього як до сховища ключів.

Встановіть суворі права доступу за допомогою такої команди:

chmod 400 wp-config.php.

Це заблокує іншим користувачам та процесам можливість читати або змінювати файл. Використовуйте 440, якщо ваш веб-сервер потребує групового доступу для читання.

Якщо сайт не працює з 400, перейдіть на 440 і переконайтеся, що власник групи відповідає тому, під яким працює ваш веб-сервер.

Для додаткового захисту, якщо ваша конфігурація це дозволяє, перемістіть wp-config.php на один рівень вище кореневого каталогу веб-сайту. WordPress все одно завантажуватиме його автоматично.

Обмежте ролі та права користувачів {#limit-user-roles-and-permissions}

Надавайте користувачам лише ті права, які їм потрібні (принцип мінімальних привілеїв). Це запобігає тому, щоб зламаний обліковий запис захопив весь ваш сайт.

Виконайте ці кроки, щоб обмежити ролі та права користувачів у WordPress:

  • Перейдіть до розділу «Користувачі » → «Усі користувачі».
  • Натисніть на користувача, якого хочете переглянути.
  • У випадаючому меню «Роль » виберіть найнижчу необхідну роль, наприклад, «Підписник», «Учасник», «Автор» або «Редактор».
  • Натисніть «Оновити користувача».

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

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

Вимкніть редагування файлів з панелі управління {#disable-file-editing-from-the-dashboard}

Вимкніть вбудований редактор тем і плагінів. Таким чином, зламаний обліковий запис адміністратора не зможе швидко вставити шкідливий код у файли вашого сайту.

Виконайте ці кроки, щоб вимкнути редагування файлів з панелі управління WordPress:

  • Підключіться до вашого сайту за допомогою SFTP або файлового менеджера вашого хостингу.
  • Відредагуйте файл wp-config.php у кореневій папці WordPress і додайте:
  • Збережіть файл.
  • Перейдіть у розділ «Зовнішній вигляд» в адмінці WordPress. Редактор тем зникне. Редактор плагінів також зникне.

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

Вимкніть XML-RPC {#disable-xml-rpc}

XML‑RPC є поширеною точкою входу для атак методом грубої сили та зловживання пінгбеками. Заблокуйте його на рівні WordPress або сервера.

Варіант А: Вимкнути в WordPress

  • Додайте наступне до файлу functions.php або власного плагіна:
  • Збережіть файл.
  • Відкрийте кінцеву точку xmlrpc.php у браузері, перейшовши за адресою https://yourdomain.com/xmlrpc.php Ви побачите загальне повідомлення XML-RPC, але запити XML-RPC більше не працюватимуть.

Це вимикає XML-RPC на рівні WordPress. Кінцева точка xmlrpc.php все ще може бути доступною, тому для повного захисту та зменшення навантаження заблокуйте її на веб-сервері або WAF.

Варіант Б: Блокування на рівні веб-сервера**

Блокування XML-RPC на сервері — найефективніший варіант, оскільки він зупиняє запити до запуску PHP.

Nginx:

  • Відкрийте файл конфігурації Nginx вашого сайту для домену.
  • Додайте правило для xmlrpc.php у блок сервера.
  • Перезавантажте Nginx.

Apache:

  • Відредагуйте конфігурацію Apache вашого сайту або файл .htaccess, якщо це дозволено.
  • Додайте правило блокування xmlrpc.php.
  • Перезапустіть Apache.

Це запобігає надходженню запитів до WordPress, що зменшує навантаження та перекриває типові шляхи атак XML-RPC.

Примітка: Якщо плагін Jetpack або мобільний додаток WordPress потребують XML-RPC, не блокуйте його повністю. Натомість обмежте частоту запитів і, якщо можливо, дозвольте доступ лише з надійних IP-адрес.

Резервне копіювання та моніторинг {#backups-and-monitoring}

Будьте готові до збоїв. Резервні копії дозволяють швидко відновити роботу. Моніторинг показує, що змінилося.

Регулярно створюйте резервні копії вашого веб-сайту {#back-up-your-website-regularly}

Резервні копії — це не опція. Вони — ваш аварійний вихід, коли оновлення порушує роботу, плагін потрапляє під атаку або невдале розгортання псує базу даних.

Тут вам потрібно зберегти чисту копію вашого сайту, яку ви зможете швидко відновити, не гадаючи, чого бракує.

Ручне резервне копіювання

Виконайте ці кроки, щоб створити резервну копію вашого сайту WordPress:

  • Встановіть та активуйте плагін для резервного копіювання в меню «Плагіни»«Додати новий».
  • Відкрийте плагін і запустіть «Створити резервну копію зараз» з вибраними файлами та базою даних.
  • Збережіть резервну копію на зовнішньому сховищі, якщо таке є.

Автоматичне резервне копіювання

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

Automated backup

Виберіть графік, виходячи з того, як часто змінюється ваш сайт.

  • Щодня: для активних сайтів із частими оновленнями, коментарями або замовленнями.
  • Щотижня: для маркетингових сайтів, що рідко змінюються.
  • Щомісяця:** **Коли вміст змінюється рідко.

Повне резервне копіювання включає вашу базу даних, папку wp-content (особливо завантажені файли) та файли конфігурації, якщо ваша система не відтворює їх автоматично.

Рекомендації:

  • Зберігайте резервні копії поза сайтом. Навіть збій сервера не знищить їх.
  • Зберігайте кілька точок відновлення, а не лише останній знімок.
  • Регулярно перевіряйте відновлення. Неперевірені резервні копії не є надійними. Ви сподіваєтеся, що вони спрацюють, коли це буде потрібно.

Якщо відновлення затягується або не вдається, зазвичай це означає, що резервна копія переповнена. Перевірте зростання розміру резервної копії, яке часто спричиняють файли журналів або каталоги кешу всередині wp-content. Виключіть каталоги кешу з резервних копій, якщо ваша платформа може безпечно їх відтворити.

Моніторинг вашого сайту {#monitor-your-site}

Зміцнення безпеки допомагає, але моніторинг дозволяє виявити те, що пропускається. Виявляйте проблеми на ранній стадії. Майте під рукою журнали, щоб відстежити, що сталося.

Моніторинг часу безвідмовної роботи

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

Інструменти для перевірки працездатності, такі як UptimeRobot (широкий безкоштовний тариф) або Pingdom, виконують перевірки HTTP та ключових слів на вашій головній сторінці та основних сторінках.

Практична настройка:

  • Моніторьте свою головну сторінку та одну важливу сторінку, яка працює без входу в систему, наприклад, сторінку цін, оформлення замовлення або головну цільову сторінку.
  • Використовуйте як перевірку статусу HTTP, так і перевірку за ключовими словами, щоб не пропустити зламану сторінку, яка все ще повертає нормальний код відповіді 200.

Попередження про безпеку

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

Плагіни безпеки, такі як Wordfence або Sucuri, сповіщають про сплески входів у систему, зміни файлів та нових адміністраторів.

Виконайте ці кроки, щоб налаштувати сповіщення в WordPress:

  • Перейдіть до «Плагіни » → «Додати новий».
  • Встановіть та активуйте плагін безпеки, що підтримує сповіщення.
  • Відкрийте плагін у лівій бічній панелі.
  • Знайдіть «Сповіщення» або «Повідомлення» в налаштуваннях плагіна.
  • Увімкніть сповіщення для:
    • Створення нового адміністратора
    • Зміни у файлах плагіна або теми
    • Стрибки кількості входів або повторювані помилки
    • Доступні критичні оновлення плагіна
    • Проблеми з DNS або SSL-сертифікатом
  • Направляйте критичні сповіщення до Slack або PagerDuty. Залиште електронну пошту для повідомлень з низьким пріоритетом.

Журнали активності

Під час інциденту журнали відповідають на єдині питання, що мають значення: що змінилося, коли це змінилося, хто це змінив і звідки.

Практична настройка:

  • Реєструйте дії адміністратора, такі як створення користувачів, встановлення плагінів та зміни налаштувань.
  • Зберігайте журнали достатньо довго, щоб мати змогу розслідувати повільні атаки.
  • Поєднуйте журнали активності з журналами доступу до сервера, щоб мати змогу співвідносити IP-адреси та агенти користувачів.

Виконайте ці кроки, щоб увімкнути журнали активності в WordPress:

  • Перейдіть до «Плагіни » → «Додати новий».
  • Встановіть та активуйте плагін журналу активності.
  • Відкрийте плагін у лівій бічній панелі.
  • Увімкніть ведення журналу для дій адміністратора, таких як створення користувачів, встановлення плагінів та зміна налаштувань.
  • Встановіть термін зберігання журналів, а потім збережіть.
  • Якщо є така можливість, увімкніть експорт журналу або пересилання до зовнішнього сховища.

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

  • Зменшіть рівень деталізації для некритичних подій.
  • Активно очищайте журнали.
  • Передавайте дані до зовнішнього сховища журналів, якщо це можливо.

Останні думки {#final-thoughts}

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

Якщо ви зробите лише одну річ, нехай це буде послідовність. Регулярно оновлюйте ядро WordPress, теми та плагіни. Впровадьте двофакторну автентифікацію (2FA) для облікових записів адміністраторів. Використовуйте довгі, унікальні паролі та уникайте очевидних імен користувачів. Забезпечте HTTPS на кожній сторінці, щоб дані входу, сеансів та форм залишалися зашифрованими.

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

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

Поширені запитання {#frequently-asked-questions}

1. Чи безпечний WordPress?

Так, WordPress є безпечним, якщо дотримуватися основних правил: оновлювати ядро, теми та плагіни; використовувати надійні унікальні паролі та двофакторну автентифікацію для адміністраторів; обирати хостинг з ізоляцією та брандмауерами; регулярно створювати резервні копії.

2. Чи має WordPress вбудовані засоби безпеки?

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

Зустрічайте Ranktracker

Універсальна платформа для ефективного SEO

За кожним успішним бізнесом стоїть потужна SEO-кампанія. Але з незліченною кількістю інструментів і методів оптимізації на вибір може бути важко зрозуміти, з чого почати. Що ж, не бійтеся, адже у мене є те, що вам допоможе. Представляємо вам універсальну платформу Ranktracker для ефективного SEO

Ми нарешті зробили реєстрацію на Ranktracker абсолютно безкоштовною!

Створіть безкоштовний обліковий запис

Або Увійдіть, використовуючи свої облікові дані

3. Чи зламали мій сайт WordPress?

Слідкуйте за очевидними тривожними ознаками, такими як несподівані перенаправлення, нові адміністратори, яких ви не створювали, зміна файлів тем або плагінів без розгортання, дивні заплановані завдання та раптові сплески входів у систему. Перевірте журнали плагінів безпеки та журнали доступу до сервера. Якщо ви використовуєте Google Search Console, шукайте попередження та незнайомі індексовані URL-адреси.

4. Як перевести мій сайт WordPress на HTTPS?

Встановіть SSL-сертифікат у панелі управління хостингом. Потім оновіть URL-адресу головної сторінки та URL-адресу сайту WordPress на HTTPS і ввімкніть примусове використання HTTPS для адміністративної панелі та інтерфейсу. Якщо ви бачите попередження про змішаний контент, замініть жорстко закодовані HTTP-посилання в базі даних та ресурсах теми. Якщо ви використовуєте проксі-сервер або балансувальник навантаження, переконайтеся, що WordPress розпізнає оригінальний запит як HTTPS, щоб уникнути циклів перенаправлення.

Felix Rose-Collins

Felix Rose-Collins

Ranktracker's CEO/CMO & Co-founder

Felix Rose-Collins is the Co-founder and CEO/CMO of Ranktracker. With over 15 years of SEO experience, he has single-handedly scaled the Ranktracker site to over 500,000 monthly visits, with 390,000 of these stemming from organic searches each month.

Почніть користуватися Ranktracker... Безкоштовно!

Дізнайтеся, що стримує ваш сайт від ранжування.

Створіть безкоштовний обліковий запис

Або Увійдіть, використовуючи свої облікові дані

Different views of Ranktracker app