Перейти до вмісту

Як захистити сайт від злому: повний чекліст безпеки для власника бізнесу

Андрій Оновлено: 9 хв читання Безпека

Коротко

  • 60% малих бізнесів, які зазнали кіберінциденту, закриваються протягом 6 місяців — профілактика в рази дешевша за відновлення після злому
  • 10 базових кроків: SSL, надійні паролі, 2FA, оновлення, обмеження спроб входу, зміна wp-login URL, правильні дозволи файлів (644/755), захист від SQL-ін'єкцій, WAF, бекапи
  • WordPress-харденінг: вимкніть редактор файлів (DISALLOW_FILE_EDIT), заблокуйте XML-RPC, приховайте версію WP, обмежте REST API для неавторизованих
  • Бекапи — останній рубіж: автоматичні щодня, зберігайте мінімум 30 днів, тримайте копію поза хостингом (Google Drive / S3), і перевіряйте відновлення раз на квартал

Чому зламують сайти

Більшість зламів — не цілеспрямовані атаки саме на ваш бізнес. Це автоматизовані боти, які сканують тисячі сайтів на відомі вразливості. Знайшли слабке місце — зламали. Не знайшли — пішли далі. Вашому сайту не потрібно бути «цікавим» для хакерів — достатньо бути незахищеним. За даними Ponemon Institute, 60% малих бізнесів, які стикнулись з кіберінцидентом, закриваються протягом 6 місяців.

Що роблять зі зламаними сайтами:

  • Розсилка спаму — ваш сервер використовують для відправки тисяч спам-листів. Результат: IP потрапляє в чорний список, email перестає доходити до клієнтів
  • Редиректи — відвідувачі потрапляють на фішингові або порно-сайти замість вашого. Google бачить це і видаляє сайт з видачі
  • Майнінг криптовалюти — на ваш сайт вбудовують скрипт, який використовує ресурси комп'ютерів відвідувачів
  • Крадіжка даних — якщо є форми з персональними даними або платіжними реквізитами
  • SEO-спам — на ваших сторінках з'являються приховані посилання на чужі сайти. Ваші позиції в Google обвалюються

Відновлення після злому коштує в рази дорожче за профілактику. Я чистив десятки заражених сайтів — і щоразу рахунок починається від 5 000 грн і тижня простою. А якщо ваш сайт збирає персональні дані (форми, реєстрації, замовлення) — ви ще й несете юридичну відповідальність за їх витік згідно із Законом України «Про захист персональних даних» та GDPR для європейських клієнтів (що включити в політику конфіденційності). Простіше витратити кілька годин на налаштування захисту, ніж потім тижнями чистити сайт від вірусів і відновлювати позиції.

Загроза Захист Інструмент Пріоритет
Перехоплення даних SSL-сертифікат Let's Encrypt Критичний
Brute force 2FA + обмеження входу Wordfence / Limit Login Критичний
SQL-ін'єкції / XSS Валідація + prepared statements WAF + код-ревью Критичний
Вразливі плагіни Регулярні оновлення WP auto-update / cron Високий
DDoS-атака CDN + фільтрація трафіку Cloudflare (free) Високий
Втрата даних Бекапи 3-2-1 UpdraftPlus / cron + S3 Критичний
Clickjacking / MIME-sniffing Security headers .htaccess / nginx config Середній

Базовий чекліст: 10 обов'язкових кроків

Ці пункти актуальні для будь-якого сайту — WordPress, самописний, на конструкторі:

1. SSL-сертифікат

Сайт повинен працювати через HTTPS. SSL-сертифікат шифрує дані між браузером і сервером. Без нього паролі, форми і платіжні дані передаються відкритим текстом. Let's Encrypt — безкоштовний і достатній для більшості сайтів.

2. Надійні паролі

Мінімум 12 символів, великі і малі літери, цифри, спеціальні символи. Не використовуйте один пароль для адмінки, хостингу, FTP і пошти. Використовуйте менеджер паролів (Bitwarden, 1Password). Пароль «admin123» або «назвакомпанії2026» — це не пароль, це запрошення для ботів.

3. Двофакторна автентифікація (2FA)

Увімкніть 2FA для входу в адмінку, хостинг-панель і поштову скриньку. Навіть якщо хтось дізнається ваш пароль — без другого фактору (код з додатку або SMS) увійти не зможе.

4. Регулярні оновлення

CMS, плагіни, теми, PHP, серверне ПЗ — все повинно бути оновленим. Плагіни відповідають за 91% усіх відомих вразливостей WordPress. У 2025 році зафіксовано понад 11 000 нових вразливостей, і медіанний час до першої атаки — лише 5 годин після публікації. Оновлення закривають ці вразливості, але тільки якщо ви їх встановлюєте вчасно.

5. Обмеження спроб входу

Боти перебирають тисячі комбінацій паролів (brute force). Обмежте кількість невдалих спроб входу — після 5 невдач блокуйте IP на 30 хвилин. Це зупиняє більшість автоматизованих атак.

6. Зміна стандартних URL

Стандартна адреса входу WordPress (/wp-admin, /wp-login.php) відома всім ботам. Змініть URL на щось нестандартне. Це не захист від цілеспрямованої атаки, але відсікає 90% автоматизованих спроб.

7. Правильні дозволи файлів

Файли: 644. Директорії: 755. Конфігураційний файл (wp-config.php): 600 або 640. Ніколи не ставте 777 — це дає повний доступ будь-кому.

8. Захист від SQL-ін'єкцій і XSS

Всі дані з форм повинні проходити валідацію і санітизацію на сервері. Ніколи не довіряйте даним від користувача — навіть якщо форма «проста». Використовуйте підготовлені запити (prepared statements) для роботи з базою даних.

9. Заголовки безпеки (Security Headers)

Налаштуйте HTTP-заголовки: X-Content-Type-Options, X-Frame-Options, Content-Security-Policy, Strict-Transport-Security. Вони запобігають багатьом типам атак: clickjacking, MIME-sniffing, XSS. Додаються в .htaccess або конфігурації сервера.

10. Видаліть все зайве

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

Хочете знати що гальмує ваш сайт?

SEO-аудит — знайду технічні проблеми і дам план виправлень

Замовити аудит

Безпека WordPress: харденінг

WordPress — найпопулярніша CMS у світі, і саме тому вона найчастіша мішень для атак. Але проблема не в самому WordPress — ядро досить безпечне. Проблема у плагінах, темах і недбалому адмініструванні. Нижче — кроки з харденінгу (hardening), які я налаштовую на кожному WordPress-сайті.

Зміна стандартного логіна та обмеження доступу

Логін «admin» — це перше, що пробують боти. Створіть адміністратора з унікальним іменем і видаліть стандартного. Якщо є можливість — обмежте доступ до адмінки по IP-адресах: дозвольте вхід тільки зі своєї IP або через VPN. Це радикально, але я використовую це на сайтах з чутливими даними.

Вимкніть XML-RPC та редагування файлів

XML-RPC — застарілий протокол, який часто використовується для brute force атак. Якщо ви не працюєте через мобільний додаток WordPress — вимкніть його. Також заблокуйте редагування файлів з адмінки: додайте define('DISALLOW_FILE_EDIT', true); в wp-config.php. Це запобігає зміні коду теми чи плагіна навіть при компрометації адміністраторського акаунту.

Обмеження REST API

За замовчуванням REST API WordPress відкриває список користувачів сайту — зловмисник може дізнатися логіни всіх адміністраторів простим запитом до /wp-json/wp/v2/users. Закрийте цей ендпоінт або обмежте доступ до нього тільки для авторизованих користувачів.

Плагін безпеки і аудит плагінів

Wordfence або Sucuri — для моніторингу, файрволу і сканування. Один плагін безпеки достатньо — два одночасно створюють конфлікти. Не менш важливо перевіряти кожен плагін перед установкою: дата останнього оновлення, кількість активних установок, рейтинг. Плагін, який не оновлювався 2+ роки — потенційна zero-day вразливість. Після supply chain-атаки на EssentialPlugin у 2026 році я також почав перевіряти історію зміни власників плагінів на WordPress.org.

Детальніше про внутрішню архітектуру WordPress — в статті як працює WordPress під капотом.

Що залежить від хостингу

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

  • Актуальна версія PHP — PHP 7.x вже не отримує оновлень безпеки. Мінімум PHP 8.1, бажано 8.2+
  • Ізоляція акаунтів — на shared-хостингу ваш сайт не повинен мати доступ до файлів інших клієнтів
  • Автоматичні бекапи — щоденні, з можливістю відновлення в один клік
  • WAF (Web Application Firewall) — фільтрує шкідливі запити до того, як вони дійдуть до сайту
  • Захист від DDoS — базовий захист на рівні інфраструктури
  • Моніторинг malware — автоматичне сканування файлів на шкідливий код

Дешевий хостинг за 30-50 грн/міс часто економить на безпеці. Це не означає що дорогий хостинг автоматично безпечний — але це один з факторів при виборі.

Бекапи: як не втратити все

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

Правила бекапів:

  • Правило 3-2-1 — 3 копії, на 2 різних носіях, 1 копія в іншому фізичному місці (хмара)
  • Автоматичні, не ручні — щоденний автоматичний бекап надійніший за «я збережу коли згадаю»
  • Файли + база даних — бекап тільки файлів або тільки бази — не повний бекап
  • Перевіряйте відновлення — бекап, який неможливо відновити, не бекап. Тестуйте відновлення хоча б раз на квартал
  • Не зберігайте бекапи тільки на тому ж сервері — якщо сервер зламають або він впаде, бекапи зникнуть разом з сайтом

Для WordPress: UpdraftPlus (безкоштовний, відправляє бекапи на Google Drive або Dropbox). Для самописних сайтів: cron-скрипт, який архівує файли + дамп бази і відправляє на зовнішнє сховище.

Моніторинг і раннє виявлення

Чим раніше ви дізнаєтесь про проблему — тим менше шкоди. Налаштуйте:

  • Uptime-моніторинг — сервіси типу UptimeRobot (безкоштовний) перевіряють сайт кожні 5 хвилин і повідомляють якщо він недоступний
  • Google Search Console — повідомить якщо Google виявить malware або проблеми з безпекою на сайті
  • Сканер файлів — відстежує зміни у файлах сайту. Якщо файл змінився без вашого відома — це тривожний сигнал
  • Журнал входів — фіксуйте хто, коли і звідки входив в адмінку. Незнайомий IP = можлива компрометація

Не ігноруйте email-повідомлення від хостингу і Google Search Console. «Виявлено проблему з безпекою» — це не спам, це реальна загроза. Моніторинг — частина регулярних дій після запуску сайту.

Що робити якщо сайт зламали

Якщо злом вже стався — дійте швидко і послідовно:

  • Не панікуйте, але дійте негайно — кожна година зі зламаним сайтом = втрата позицій і довіри
  • Змініть всі паролі — адмінка, хостинг, FTP, база даних, пошта. Все. Зараз
  • Визначте масштаб — які файли змінені, чи є шкідливий код у базі даних, чи є бекдори
  • Відновіть з чистого бекапу — якщо є бекап до моменту злому. Не забудьте перевірити що бекап сам не заражений
  • Або очистіть вручну — якщо бекапу немає, видаліть шкідливий код з кожного зараженого файлу
  • Закрийте вразливість — зрозумійте як зламали і виправте причину, інакше зламають знову
  • Перевірте через Google Search Console — якщо Google позначив сайт як небезпечний, подайте запит на повторну перевірку

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

Часті запитання

Базовий захист (SSL, паролі, оновлення, бекапи) — безкоштовно, потрібен тільки час. Плагін безпеки для WordPress (Wordfence Premium) — від $119/рік. Послуга з налаштування безпеки фахівцем — від 3 000-5 000 грн разово. Це набагато дешевше ніж відновлення після злому, яке може коштувати 5 000-15 000 грн і тижні простою.

Конструктори беруть на себе базову безпеку: SSL, оновлення, захист від DDoS. Але ви все одно відповідаєте за надійний пароль і двофакторну автентифікацію. Злам акаунту через слабкий пароль конструктор не запобіжить.

Мінорні оновлення безпеки — якнайшвидше (протягом 1-2 днів). Мажорні оновлення — після появи перших відгуків (зачекайте 3-5 днів щоб впевнитись що оновлення стабільне). Завжди робіть бекап перед оновленням.

Для більшості малих бізнесів — корисний, але не обов'язковий. Cloudflare (безкоштовний план) дає базовий захист від DDoS, CDN для пришвидшення сайту і додатковий рівень фільтрації трафіку. Якщо ваш сайт вже атакували або у вас є чутливі дані — варто підключити.

Перевірте на Google Safe Browsing (transparencyreport.google.com), просканувате через Sucuri SiteCheck (sitecheck.sucuri.net), перегляньте Google Search Console на попередження про безпеку. Також зверніть увагу на симптоми: незнайомі файли на сервері, редиректи на чужі сайти, скарги від відвідувачів, різкий зріст трафіку зі спам-країн.

Базовий чекліст (SSL, паролі, 2FA, оновлення, бекапи) — 2-3 години для WordPress-сайту. Повний харденінг із security headers, WAF, обмеженням REST API і моніторингом — до 1 робочого дня. Після первинного налаштування підтримка займає 15-30 хвилин на тиждень: перевірка оновлень, перегляд логів. Якщо потрібна постійна підтримка WordPress-сайту з моніторингом безпеки — це окрема послуга.

100% гарантії не дасть ніхто — нові вразливості з'являються щодня. Але реалістична мета — зробити злам вашого сайту дорожчим і складнішим за альтернативні цілі. Бот, який натикається на 2FA, WAF і обмеження входу, просто йде далі до менш захищеного сайту. Виконання цього чекліста закриває 95% типових векторів атак.

Не знайшли відповідь?

Висновок

Безпека сайту — це не одноразова дія, а постійний процес. Базовий чекліст (SSL, паролі, оновлення, бекапи, обмеження входу) закриває 90% ризиків і не потребує великих витрат. Ігнорування безпеки — це не «авось пронесе», це питання часу.

Починайте з базових кроків сьогодні: змініть слабкі паролі, увімкніть 2FA, перевірте оновлення, налаштуйте бекапи. Кожен виконаний пункт з чекліста — це закрита двері для ботів.

Не впевнені в безпеці свого сайту? Замовте аудит — перевірю сайт на вразливості, налаштую захист і бекапи. А якщо сайт вже заражений — допоможу з видаленням вірусів і відновленням. Оцінити вартість розробки безпечного сайту з нуля можна через калькулятор. І перед запуском обов'язково пройдіть повний чекліст перед запуском сайту — безпека там окремий блок.

Потрібна допомога з сайтом?

Розкажіть про ваш проєкт — проконсультую безкоштовно і скажу, що потрібно саме вам.

Або напишіть напряму

Андрій Дзудзило — веб-розробник
Андрій

Веб-розробник

Понад 8 років у веб-розробці — запускаю власні проєкти і допомагаю бізнесу будувати ефективні сайти. Пишу в блозі про те, що перевірив на практиці.

Поділитися

Читайте також