Як захистити сайт від злому: повний чекліст безпеки для власника бізнесу
Чому зламують сайти
Більшість зламів — не цілеспрямовані атаки саме на ваш бізнес. Це автоматизовані боти, які сканують тисячі сайтів на відомі вразливості. Знайшли слабке місце — зламали. Не знайшли — пішли далі. Вашому сайту не потрібно бути «цікавим» для хакерів — достатньо бути незахищеним.
Що роблять зі зламаними сайтами:
- Розсилка спаму — ваш сервер використовують для відправки тисяч спам-листів. Результат: IP потрапляє в чорний список, email перестає доходити до клієнтів
- Редиректи — відвідувачі потрапляють на фішингові або порно-сайти замість вашого. Google бачить це і видаляє сайт з видачі
- Майнінг криптовалюти — на ваш сайт вбудовують скрипт, який використовує ресурси комп'ютерів відвідувачів
- Крадіжка даних — якщо є форми з персональними даними або платіжними реквізитами
- SEO-спам — на ваших сторінках з'являються приховані посилання на чужі сайти. Ваші позиції в Google обвалюються
Відновлення після злому коштує в рази дорожче за профілактику. Простіше витратити кілька годин на налаштування захисту, ніж потім тижнями чистити сайт від вірусів і відновлювати позиції.
Базовий чекліст: 10 обов'язкових кроків
Ці пункти актуальні для будь-якого сайту — WordPress, самописний, на конструкторі:
1. SSL-сертифікат
Сайт повинен працювати через HTTPS. SSL-сертифікат шифрує дані між браузером і сервером. Без нього паролі, форми і платіжні дані передаються відкритим текстом. Let's Encrypt — безкоштовний і достатній для більшості сайтів.
2. Надійні паролі
Мінімум 12 символів, великі і малі літери, цифри, спеціальні символи. Не використовуйте один пароль для адмінки, хостингу, FTP і пошти. Використовуйте менеджер паролів (Bitwarden, 1Password). Пароль «admin123» або «назвакомпанії2026» — це не пароль, це запрошення для ботів.
3. Двофакторна автентифікація (2FA)
Увімкніть 2FA для входу в адмінку, хостинг-панель і поштову скриньку. Навіть якщо хтось дізнається ваш пароль — без другого фактору (код з додатку або SMS) увійти не зможе.
4. Регулярні оновлення
CMS, плагіни, теми, PHP, серверне ПЗ — все повинно бути оновленим. 80% зламів WordPress відбуваються через застарілі плагіни з відомими вразливостями. Оновлення закриває ці вразливості.
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 — він досить безпечний. Проблема у плагінах, темах і недбалому адмініструванні.
Додаткові кроки для WordPress:
- Не використовуйте логін «admin» — створіть адміністратора з унікальним іменем і видаліть стандартного
- Вимкніть XML-RPC — якщо не використовуєте мобільний додаток WordPress. Це частий вектор brute force атак
- Вимкніть редагування файлів з адмінки — додайте
define('DISALLOW_FILE_EDIT', true);вwp-config.php - Обмежте REST API — за замовчуванням REST API відкриває інформацію про користувачів сайту
- Плагіни безпеки — Wordfence або Sucuri для моніторингу, файрволу і сканування. Один плагін безпеки — достатньо, два — конфлікт
- Перевіряйте плагіни перед установкою — дата останнього оновлення, кількість активних установок, рейтинг, відгуки. Плагін, який не оновлювався 2+ роки — потенційна загроза
Детальніше про внутрішню архітектуру 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, паролі, оновлення, бекапи, обмеження входу) закриває 90% ризиків і не потребує великих витрат. Ігнорування безпеки — це не «авось пронесе», це питання часу.
Починайте з базових кроків сьогодні: змініть слабкі паролі, увімкніть 2FA, перевірте оновлення, налаштуйте бекапи. Кожен виконаний пункт з чекліста — це закрита двері для ботів.
Не впевнені в безпеці свого сайту? Замовте аудит — перевірю сайт на вразливості, налаштую захист і бекапи. А якщо сайт вже заражений — допоможу з видаленням вірусів і відновленням.