Безпека та стабільність
Захист, закладений в архітектуру: мінімум сторонніх плагінів, захищені форми й авторизація, Cloudflare, ізоляція сайтів, бекапи з перевіреним відновленням — щоб сайт працював передбачувано навіть під атаками
Захист, закладений в архітектуру: мінімум сторонніх плагінів, захищені форми й авторизація, Cloudflare, ізоляція сайтів, бекапи з перевіреним відновленням — щоб сайт працював передбачувано навіть під атаками
«Безпека — це не плагін. Це властивість архітектури»
Я будую захист як частину архітектури, а не як набір сторонніх рішень. Понад 18 років роботи з цифровими продуктами — від сайтів на WordPress до вебдодатків, CRM і ботів — привчили закладати безпеку ще на етапі проєктування: власна бізнес-логіка, мінімум сторонніх плагінів, контроль кожної точки входу.
У моїй практиці був кейс: дванадцять сайтів, зламаних за одну ніч. Один пароль на всі — і нуль зусиль з боку хакера. На сервері — вебшели (по суті, чорний хід на ваш сервер) і doorway-сторінки, які наповнювали пошукову видачу спамом. Детальний розбір цього зламу є в моєму блозі.
Висновок із таких історій завжди однаковий: злам — це не «не пощастило». Це відкладені пріоритети. Тому мій підхід — профілактика замість реанімації:
безпека закладається в архітектуру, а не «навішується» плагіном
кожен сайт на хостингу ізольований — зламаний сусід не тягне за собою решту
автоматичні бекапи та моніторинг — проблему видно раніше, ніж її помітять клієнти
регулярні оновлення без страху «а раптом зламається»
Нижче — з чого цей захист складається на практиці.
Кожен зайвий плагін — потенційна точка входу. Тому я свідомо:
обмежую кількість сторонніх плагінів
використовую лише перевірені Pro-рішення
реалізую критичну логіку власним кодом
Менше чужого коду — більше контролю над системою.
Найчастіші атаки летять саме сюди, тому ці вектори я закриваю першими:
приховування стандартної сторінки входу та захист від брутфорсу
Cloudflare Turnstile і CAPTCHA там, де вони доречні
CSRF-захист кожної форми
безпарольний вхід: у моєму клієнтському порталі — email з одноразовим PIN і Google One Tap
У боті «Мытарь» захист від перебору логінів працює навіть на рівні таймінгу відповіді — зловмисник не дізнається, чи існує акаунт.
Cloudflare в мене — активний елемент безпеки, а не просто DNS:
WAF-правила
rate limiting
захист від DDoS
фільтрація підозрілого трафіку
Більшість загроз відсіюється ще до того, як долетить до сервера.
Система не повинна вірити «на слово» — ні користувачам, ні зовнішнім сервісам:
цифрові відбитки користувачів і контроль активних сесій
додаткові перевірки доступу до чутливих операцій
криптографічна перевірка підписів платіжних вебхуків — так працюють оплати в «Скиті» та моєму клієнтському порталі
транзакційна видача кодів доступу: у «Мытарі» ліміт використань захищений від гонок на рівні бази
Несанкціонований доступ лишається складним навіть при компрометації облікових даних.
Застаріле ядро — відчинені двері, тому проєкти я тримаю в актуальному стані:
регулярні оновлення ядра WordPress
контроль оновлень Pro-плагінів
перевірка сумісності перед розгортанням
деплої через власну CI/CD — кожна зміна відстежується й відкочується
Оновлення перестають бути лотереєю.
Безпека без плану «Б» — ілюзія, тому сценарії відновлення закладені заздалегідь:
автоматичні резервні копії файлів і баз даних
зберігання бекапів поза основним сервером
швидкий відкат без простою сайту
перевірені сценарії відновлення, а не «бекап для галочки»
У моєму клієнтському порталі бекап сайту чи бази клієнт забирає в один клік — стрімінгом, без проміжних копій на сервері.
Кожен злам — це не технічна проблема. Це проблема пріоритетів. Коли захист закладений в архітектурі, сайт працює передбачувано, витримує атаки й не потребує аварійних втручань.
Якщо не впевнені, наскільки захищений ваш проєкт, — напишіть мені. Година перевірки зараз дешевша за безсонні ночі потім.