Технології для підвищення безпеки на сайтах: що нового?

Технології для підвищення безпеки на сайтах: що нового?

Вступ: безпека — це не параноя, це гігієна

У 2024 році хакери зламували в середньому 30 000 сайтів щодня. Не лише банки та корпорації — малий бізнес, інтернет-магазини, блоги, лендінги. Зловмисників цікавлять не тільки дані кредитних карток: скомпрометований сайт використовують для розсилки спаму, майнінгу криптовалюти, зберігання шкідливих файлів або редиректу відвідувачів на фішингові сторінки.

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

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

У цій статті — огляд актуальних технологій і підходів до безпеки сайтів у 2025–2026 роках: від базового HTTPS до сучасних механізмів захисту від AI-генерованих атак.


Частина 1: Фундамент — HTTPS, TLS та сертифікати

Чому HTTP у 2025 році — це не просто "застаріло", а небезпечно

HTTP передає всі дані у відкритому вигляді. Будь-хто в тій самій мережі (публічний Wi-Fi у кафе, корпоративна мережа, провайдер) може перехопити і прочитати: паролі, дані форм, cookies сесій, особисту інформацію.

HTTPS (HTTP over TLS) шифрує весь трафік між браузером і сервером. Навіть якщо дані перехоплено — без ключа розшифрування вони марні.

Google з 2018 року позначає HTTP-сайти як "Небезпечний" у рядку браузера. З 2021 року Chrome блокує змішаний контент (коли HTTPS-сторінка завантажує HTTP-ресурси). Для SEO HTTPS — обов'язковий фактор ранжування.

TLS 1.3 — сучасний стандарт шифрування

TLS (Transport Layer Security) — протокол, що забезпечує шифрування HTTPS-з'єднань. Версія 1.3, стандартизована у 2018 році, принесла суттєві покращення:

Швидкість: TLS 1.3 встановлює з'єднання за одне "рукостискання" замість двох у TLS 1.2. Це зменшує затримку на 100–200 мс — особливо помітно для мобільних користувачів.

Безпека: видалено застарілі та вразливі алгоритми шифрування (RSA key exchange, RC4, DES, 3DES, MD5, SHA-1). Залишені тільки сучасні: AES-GCM, ChaCha20-Poly1305, SHA-256/384.

Forward Secrecy: навіть якщо ключ сервера колись буде скомпрометовано — минулі сесії залишаться захищеними, бо кожна сесія використовує унікальні тимчасові ключі.

Як перевірити: SSLLabs.com (ssllabs.com/ssltest) — безкоштовний аналіз TLS-конфігурації з оцінкою A–F. Мета: оцінка A+. Якщо ваш сервер підтримує TLS 1.0 або 1.1 — терміново відключайте.

Let's Encrypt і автоматичні сертифікати

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

ACME-протокол (Automatic Certificate Management Environment) дозволяє автоматично отримувати і оновлювати сертифікати. Certbot — найпопулярніший клієнт. Cloudflare, більшість хостингів і CDN підтримують автоматичний HTTPS через Let's Encrypt.

Wildcard-сертифікати (*.example.com) покривають всі субдомени одним сертифікатом. Let's Encrypt видає їх безкоштовно через DNS-валідацію.

HSTS (HTTP Strict Transport Security) — HTTP-заголовок, що наказує браузеру завжди використовувати HTTPS для цього домену, навіть якщо користувач вводить http://:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

preload дозволяє додати домен до вбудованого списку HSTS у браузерах (hstspreload.org). Після цього браузер ніколи не спробує HTTP для вашого домену — навіть при першому відвідуванні.


Частина 2: HTTP Security Headers — невидимий щит

Що таке Security Headers і чому більшість сайтів їх ігнорує

HTTP Security Headers — це заголовки відповіді сервера, що інструктують браузер, як безпечно обробляти контент сторінки. Вони захищають від цілого класу атак: XSS, Clickjacking, MIME-sniffing, інформаційного витоку.

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

Content-Security-Policy (CSP) — найпотужніший заголовок

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

CSP є основним захистом від XSS (Cross-Site Scripting) — найпоширенішої вразливості веб-застосунків. Навіть якщо зловмисник впровадив шкідливий скрипт у ваш HTML — CSP заблокує його виконання, якщо він не дозволений директивами.

Content-Security-Policy:
  default-src 'self';
  script-src 'self' 'nonce-{RANDOM_NONCE}' https://cdn.trusted.com;
  style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;
  img-src 'self' data: https:;
  font-src 'self' https://fonts.gstatic.com;
  connect-src 'self' https://api.example.com;
  frame-ancestors 'none';
  base-uri 'self';
  form-action 'self';

Nonce-based CSP — сучасний підхід: замість дозволу всіх inline-скриптів ('unsafe-inline'), кожному легітимному скрипту присвоюється унікальний одноразовий токен (nonce), який генерується сервером при кожному запиті. Зловмисний скрипт без правильного nonce буде заблокований.

CSP Report-Only режим — для поступового впровадження: заголовок Content-Security-Policy-Report-Only не блокує порушення, але надсилає звіти про них на вказаний endpoint. Дозволяє виявити всі проблеми перед переходом до enforcement-режиму.

Інші важливі заголовки

X-Frame-Options / frame-ancestors CSP: Захист від Clickjacking — атаки, коли ваш сайт вставляється у невидимий iframe на сторонньому сайті, і користувач, думаючи що клікає по чомусь іншому, насправді взаємодіє з вашим сайтом.

X-Frame-Options: DENY
# Або через CSP (сучасніший підхід):
Content-Security-Policy: frame-ancestors 'none';

X-Content-Type-Options: Забороняє браузеру "вгадувати" MIME-тип файлу (MIME-sniffing), навіть якщо сервер вказав неправильний. Запобігає виконанню файлів, що не є скриптами, як скриптів.

X-Content-Type-Options: nosniff

Referrer-Policy: Контролює, скільки інформації про URL поточної сторінки передається при переходах на інші сайти. Захищає конфіденційну інформацію в URL (токени, ID) від витоку.

Referrer-Policy: strict-origin-when-cross-origin

Permissions-Policy (раніше Feature-Policy): Контролює доступ до браузерних API і функцій: камера, мікрофон, геолокація, сповіщення. Якщо ваш сайт не використовує геолокацію — заборонте її, щоб зловмисний скрипт не міг скористатись.

Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()

Частина 3: Автентифікація — від паролів до беспарольного майбутнього

Проблеми з традиційними паролями

Паролі — найслабша ланка безпеки. За даними Verizon Data Breach Report, понад 80% зламів пов'язані з викраденими або слабкими паролями. Люди повторно використовують паролі, вибирають прості, зберігають у незахищених місцях.

Але проблема не тільки в користувачах — проблема в самому механізмі паролів. Вони можуть бути перехоплені (фішинг), вкрадені з бази даних (data breach), підібрані (brute force).

Багатофакторна автентифікація (MFA)

MFA додає другий (або третій) фактор перевірки особи. Навіть якщо пароль викрадено — без другого фактора зловмисник не увійде.

TOTP (Time-based One-Time Password) — генерація одноразових кодів кожні 30 секунд. Реалізується через застосунки Google Authenticator, Authy, Microsoft Authenticator. Захищений від простого перехоплення, але вразливий до real-time фішингу (зловмисник перехоплює код у момент введення).

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

Реалізується через:

  • Апаратні ключі безпеки (YubiKey, Google Titan) — USB або NFC-пристрій;
  • Platform authenticators — Touch ID на Mac, Face ID на iPhone, Windows Hello, сканер відбитка на Android.

Passkeys — майбутнє автентифікації

Passkeys — новий стандарт, що замінює паролі повністю. Базується на FIDO2/WebAuthn. Apple, Google і Microsoft спільно підтримують і просувають цей стандарт.

Як це працює: при реєстрації пристрій генерує пару криптографічних ключів. Приватний ключ зберігається на пристрої (захищений біометрією або PIN), публічний — на сервері. При вході — пристрій підписує challenge від сервера приватним ключем, сервер перевіряє підпис публічним. Пароль відсутній — нема чого вкрасти або перехопити.

Passkeys синхронізуються через хмару (Apple Keychain, Google Password Manager) — якщо втратите пристрій, доступ не загубиться. Підтримуються iOS 16+, macOS Ventura+, Android 9+, Windows 10+.

Впровадження на сайті:

// Реєстрація Passkey
const credential = await navigator.credentials.create({
  publicKey: {
    challenge: serverChallenge,
    rp: { name: "My Site", id: "mysite.com" },
    user: {
      id: userId,
      name: userEmail,
      displayName: userName
    },
    pubKeyCredParams: [
      { alg: -7, type: "public-key" },  // ES256
      { alg: -257, type: "public-key" } // RS256
    ],
    authenticatorSelection: {
      residentKey: "required",
      userVerification: "required"
    }
  }
});

Захист сесій

Secure Cookies:

Set-Cookie: sessionId=abc123;
  HttpOnly;      // Недоступний через JavaScript (захист від XSS)
  Secure;        // Передається тільки через HTTPS
  SameSite=Lax;  // Захист від CSRF
  Path=/;
  Max-Age=3600

SameSite Cookie:

  • Strict — cookie не відправляється при переходах з інших сайтів (максимальний захист від CSRF, але може ламати деякі сценарії).
  • Lax — відправляється при top-level навігації (переходи за посиланнями), але не при автоматичних запитах (зображення, форми). Хороший баланс.
  • None — відправляється завжди, але вимагає Secure атрибут (тільки HTTPS).

Session Rotation — генерація нового session ID після успішного входу. Захищає від Session Fixation атак.

Абсолютний і ковзний таймаут сесії — сесія закінчується через фіксований час (абсолютний) або після певного часу неактивності (ковзний).


Частина 4: Захист від поширених атак

SQL-ін'єкції: класика, що не старіє

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

Класичний приклад вразливого коду:

// НЕБЕЗПЕЧНО — ніколи так не робіть!
$query = "SELECT * FROM users WHERE email = '" . $_GET['email'] . "'";

Зловмисник вводить: ' OR '1'='1 — і отримує доступ без пароля.

Захист: Prepared Statements (параметризовані запити)

// БЕЗПЕЧНО
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?");
$stmt->execute([$_GET['email']]);

Або ORM (Eloquent, Doctrine, Sequelize) — правильно налаштовані ORM автоматично захищають від SQL-ін'єкцій.

WAF (Web Application Firewall) — додатковий рівень захисту. Аналізує HTTP-трафік і блокує запити, що містять відомі шаблони атак (SQL-ін'єкції, XSS, path traversal тощо). Cloudflare WAF, AWS WAF, ModSecurity — популярні рішення.

XSS (Cross-Site Scripting)

XSS — впровадження шкідливого JavaScript-коду в сторінки вашого сайту, де він буде виконуватись у браузерах інших користувачів. Дозволяє красти cookies, перехоплювати введення, перенаправляти на фішингові сайти.

Типи XSS:

  • Stored XSS — шкідливий код зберігається в базі даних (коментарі, відгуки, профілі).
  • Reflected XSS — код передається через URL і одразу відображається.
  • DOM-based XSS — маніпуляція DOM через JavaScript без взаємодії з сервером.

Захист:

Output Encoding — екранування спеціальних символів при виведенні HTML:

// Небезпечно
element.innerHTML = userInput;

// Безпечно
element.textContent = userInput;
// або
element.innerHTML = DOMPurify.sanitize(userInput);

DOMPurify — бібліотека для санітизації HTML. Якщо потрібно відображати HTML від користувача (наприклад, у WYSIWYG редакторах) — DOMPurify видалить шкідливі теги та атрибути, залишивши безпечний HTML.

CSP — як описано вище, блокує виконання несанкціонованих скриптів навіть якщо XSS вдався.

CSRF (Cross-Site Request Forgery)

CSRF — змушення аутентифікованого користувача виконати небажану дію на вашому сайті. Наприклад: відвідувач зайшов на шкідливий сайт, там є прихована форма, яка відправляє запит на ваш сайт (де користувач авторизований) і, наприклад, змінює email або виводить кошти.

Захист:

CSRF-токени — унікальний непередбачуваний токен, що вставляється в кожну форму і перевіряється сервером. Шкідливий сайт не може знати цей токен.

SameSite Cookies — SameSite=Lax або Strict автоматично захищає від більшості CSRF-атак.

Double Submit Cookie Pattern — для SPA і REST API: клієнт читає значення з cookie і відправляє в заголовку запиту. Оскільки сторонній сайт не може читати ваші cookies — підробка неможлива.

Brute Force та Rate Limiting

Brute force — перебір паролів або інших значень. Без захисту зловмисник може робити тисячі спроб автоматично.

Rate Limiting — обмеження кількості запитів за одиницю часу:

// Express.js + express-rate-limit
const rateLimit = require('express-rate-limit');

const loginLimiter = rateLimit({
  windowMs: 15 * 60 * 1000, // 15 хвилин
  max: 5, // максимум 5 спроб
  message: 'Забагато спроб входу. Спробуйте через 15 хвилин.',
  standardHeaders: true,
  legacyHeaders: false,
});

app.post('/login', loginLimiter, loginHandler);

Account Lockout — тимчасове блокування аккаунту після N невдалих спроб. Але обережно: занадто агресивне блокування стає вектором DoS-атаки (зловмисник блокує чужі аккаунти спеціально).

CAPTCHA і Turnstile — Cloudflare Turnstile — сучасна альтернатива Google reCAPTCHA. Не показує задачі користувачу (невидима перевірка), але ефективно відрізняє людей від ботів. Не збирає зайвих даних на відміну від reCAPTCHA v2/v3.


Частина 5: Захист від DDoS та ботів

DDoS-атаки: масштаб і сучасні методи

DDoS (Distributed Denial of Service) — перевантаження сервера тисячами або мільйонами запитів одночасно, щоб зробити сайт недоступним. У 2024–2025 роках обсяги DDoS-атак побили рекорди — Cloudflare фіксував атаки понад 5 Тбіт/с.

Традиційний захист (більше bandwidth, більше серверів) більше не достатній. Сучасний підхід — CDN і спеціалізовані DDoS-захисні сервіси, що фільтрують шкідливий трафік ще до того, як він дістається вашого сервера.

Cloudflare — найпоширеніше рішення. Безкоштовний план включає базовий DDoS-захист. Платні плани — більш глибока фільтрація, Advanced DDoS Protection, автоматичне виявлення і пом'якшення атак рівня L3/L4/L7.

AWS Shield — для проектів на AWS. Standard (безкоштовний, базовий захист) та Advanced (розширений захист з SLA і підтримкою).

Захист від ботів

Не всі боти шкідливі — пошукові роботи, моніторингові сервіси, партнерські API-клієнти — це легітимні боти. Але шкідливі боти становлять близько 30% усього веб-трафіку:

  • Scraper bots — крадуть контент, ціни, каталоги товарів.
  • Credential stuffing bots — перевіряють мільйони вкрадених пар логін/пароль.
  • Inventory hoarding bots — скуповують дефіцитні товари (квитки, кросівки).
  • Click fraud bots — накручують кліки по рекламі.
  • Vulnerability scanning bots — шукають вразливості.

Методи захисту від шкідливих ботів:

Behavioral Analysis — аналіз поведінки: боти рухають мишею інакше, натискають кнопки занадто швидко, не виконують паузи між діями. Сучасні anti-bot рішення (Cloudflare Bot Management, DataDome, PerimeterX) виявляють ботів через машинне навчання.

Browser Fingerprinting — кожен браузер має унікальний "відбиток": встановлені шрифти, плагіни, розміри екрану, підтримка API. Більшість ботів не відтворюють реалістичного fingerprint.

Honeypot поля — приховані поля форми, невидимі для людей, але заповнені ботами:


Якщо поле заповнено — запит від бота.

Rate Limiting на рівні IP та User Agent — обмеження з урахуванням не тільки IP, але і User Agent, JA3 TLS fingerprint, HTTP/2 fingerprint.


Частина 6: Управління секретами та конфігурацією

Найпоширеніша помилка розробників: секрети в коді

GitHub щороку виявляє мільйони випадків, коли розробники випадково публікують у відкритих репозиторіях: API-ключі, паролі баз даних, секретні токени, приватні ключі.

Зловмисники автоматично сканують нові коміти на GitHub у пошуку таких секретів — і реагують протягом хвилин після публікації.

Правила управління секретами:

  1. Ніколи не зберігайте секрети у коді або у версійному контролі.
  2. Використовуйте змінні середовища (environment variables).
  3. Додайте .env файли до .gitignore — завжди.
  4. Використовуйте спеціалізовані сховища секретів.

Інструменти управління секретами:

HashiCorp Vault — потужна open-source система управління секретами. Централізоване зберігання, доступ на основі ролей, автоматична ротація секретів, аудит-лог.

AWS Secrets Manager / Azure Key Vault / Google Secret Manager — хмарні рішення від провайдерів. Автоматична ротація, інтеграція з іншими сервісами платформи.

Doppler — зручний SaaS для управління конфігурацією та секретами для команд. Синхронізація між середовищами (dev, staging, production).

git-secrets і gitleaks — інструменти, що сканують git-репозиторій на наявність секретів. Можна інтегрувати як pre-commit hook — секрет не потрапить у репозиторій навіть випадково.

# Pre-commit hook із gitleaks
#!/bin/sh
gitleaks protect --staged -v

GitHub Secret Scanning — автоматичне сканування публічних і (для Enterprise) приватних репозиторіїв. При виявленні відомих форматів секретів (AWS keys, GitHub tokens тощо) — автоматично повідомляє провайдера для інвалідації токена.


Частина 7: Безпека залежностей — Supply Chain Security

Software Supply Chain Attack — нова реальність

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

Гучні кейси: SolarWinds (2020), event-stream npm package (2018), xz utils backdoor (2024). В останньому — зловмисник два роки вносив легітимні контрибуції в open-source проект, щоб отримати довіру мейнтейнерів, а потім впровадив бекдор.

Середній проект на Node.js має сотні транзитивних залежностей. Ви перевірили, кому довіряєте весь цей код?

Управління вразливостями в залежностях

npm audit / yarn audit — сканують залежності на відомі вразливості з бази CVE:

npm audit
npm audit fix        # Автоматичне виправлення
npm audit fix --force # З порушенням semver (обережно)

Dependabot (GitHub) — автоматично створює pull requests для оновлення вразливих залежностей. Безкоштовний для публічних репозиторіїв.

Snyk — більш просунутий комерційний інструмент. Сканує не тільки npm, але й Docker-образи, Terraform, Kubernetes конфіги. Показує severity, patch availability, реальний ризик (чи вразливість реально досяжна у вашому контексті).

Socket.dev — аналізує npm-пакети на підозрілу поведінку ще до публікації вразливості: нові дозволи, зміна мейнтейнерів, підозрілий код.

Lockfiles — завжди комітьте package-lock.json або yarn.lock. Це фіксує точні версії всіх залежностей і запобігає непомітній підміні пакетів.

Subresource Integrity (SRI) — для ресурсів, що завантажуються з CDN:


Якщо файл на CDN змінено (зломано CDN або підміна) — браузер відмовиться його виконувати, бо hash не збіжиться.


Частина 8: AI-powered безпека та нові загрози

Як AI змінив ландшафт атак

Генеративний AI зробив кілька типів атак значно дешевшими і масштабованішими:

AI-генерований фішинг: ChatGPT і аналоги дозволяють генерувати переконливі фішингові листи без граматичних помилок, персоналізовані під конкретну жертву, на будь-якій мові. Класичний "нігерійський принц" зі смішними помилками — у минулому.

AI Credential Stuffing: моделі, навчені на зламаних базах даних, генерують реалістичні варіанти паролів для конкретного аккаунту (на основі відомих паролів людини, її імені, дати народження).

AI-powered CAPTCHA solving: нейромережі вирішують аудіо-CAPTCHA з точністю 90%+ і зображальні CAPTCHA все краще.

Deepfake Vishing: синтез голосу для обману систем голосової автентифікації або соціальної інженерії.

AI як інструмент захисту

Та сама технологія допомагає і захищатись:

Аномалія-детекція: ML-моделі навчаються на "нормальній" поведінці користувачів і виявляють відхилення: незвичний час входу, геолокація, спосіб набору, послідовність дій.

Intelligent WAF: сучасні WAF (Cloudflare, Imperva, AWS WAF) використовують ML для виявлення атак, що обходять сигнатурні правила. Замість пошуку відомих шаблонів — аналіз аномалій у трафіку.

Automated Threat Intelligence: системи, що в реальному часі агрегують дані про нові вектори атак і автоматично оновлюють правила захисту.

Zero Trust Architecture

Zero Trust — фундаментальна зміна підходу до безпеки: "не довіряй нікому за замовчуванням, перевіряй все завжди".

Традиційна модель: все всередині корпоративної мережі — довірене. Zero Trust: кожен запит, від будь-якого пристрою, з будь-якого місця, верифікується незалежно від того, звідки він прийшов.

Для веб-застосунків це означає:

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

Практична реалізація:

  • Мікросервіси з явною авторизацією між сервісами (JWT, mTLS).
  • Service Mesh (Istio, Linkerd) для автоматичного mTLS між сервісами.
  • Principle of Least Privilege для IAM ролей та database users.

Частина 9: Моніторинг та реагування на інциденти

Security Logging — бачити, що відбувається

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

Що логувати:

  • Всі спроби входу (успішні та невдалі) з IP, User Agent, timestamp.
  • Зміни критичних даних (email, пароль, платіжна інформація).
  • Адміністративні дії.
  • Помилки авторизації.
  • Незвичні запити (SQL injection patterns, path traversal тощо).

Structured Logging — логи у JSON-форматі легше парсити і аналізувати:

{
  "timestamp": "2025-03-15T14:23:01Z",
  "level": "warn",
  "event": "login_failure",
  "ip": "192.168.1.100",
  "user_email": "[email protected]",
  "attempt_count": 3,
  "user_agent": "Mozilla/5.0..."
}

SIEM (Security Information and Event Management): системи для централізованого збору, аналізу і кореляції логів безпеки. Grafana + Loki, ELK Stack (Elasticsearch + Logstash + Kibana), або SaaS-рішення (Datadog Security Monitoring, Splunk).

Vulnerability Scanning та Penetration Testing

Automated Scanning:

  • OWASP ZAP — безкоштовний open-source сканер вразливостей для веб-застосунків.
  • Burp Suite — галузевий стандарт для ручного і автоматизованого тестування безпеки.
  • Nuclei — швидкий сканер на основі шаблонів, велика бібліотека перевірок.

Bug Bounty Programs — запрошення дослідників безпеки знаходити вразливості в обмін на винагороду. HackerOne, Bugcrowd — платформи для організації Bug Bounty.

Penetration Testing — регулярне замовлення ручного тестування безпеки у спеціалізованих компаній. Особливо важливо перед великими релізами або при роботі з чутливими даними.

Incident Response Plan

План реагування на інциденти повинен існувати до того, як стався злам:

  1. Виявлення — як ви дізнаєтесь про злам (моніторинг, повідомлення від користувачів, зовнішні сервіси).
  2. Ізоляція — як відключити скомпрометований компонент без повної зупинки сервісу.
  3. Оцінка — що було скомпрометовано, які дані потенційно витекли.
  4. Відновлення — резервні копії, відновлення сервісу.
  5. Повідомлення — GDPR вимагає повідомити регулятора протягом 72 годин при витоку персональних даних.
  6. Postmortem — аналіз причин і заходи для запобігання.

Частина 10: Практичний чеклист веб-безпеки 2025

Обов'язкові заходи для будь-якого сайту

Транспортний рівень:

  • [ ] HTTPS з TLS 1.3 (відключено TLS 1.0, TLS 1.1)
  • [ ] HSTS заголовок з достатньою тривалістю
  • [ ] Оцінка A+ на SSLLabs.com
  • [ ] Автоматичне оновлення SSL-сертифіката

HTTP Security Headers:

  • [ ] Content-Security-Policy (хоча б у Report-Only для початку)
  • [ ] X-Content-Type-Options: nosniff
  • [ ] X-Frame-Options або frame-ancestors CSP
  • [ ] Referrer-Policy
  • [ ] Permissions-Policy

Автентифікація:

  • [ ] Хешування паролів (bcrypt, Argon2 — не MD5, не SHA1)
  • [ ] MFA доступна (TOTP як мінімум)
  • [ ] Захищені cookies (HttpOnly, Secure, SameSite)
  • [ ] Rate limiting на вхід і реєстрацію
  • [ ] Захист від Brute Force (lockout або CAPTCHA)

Захист від атак:

  • [ ] Параметризовані запити або ORM для всіх SQL-запитів
  • [ ] Output encoding для всього user-generated контенту
  • [ ] CSRF-захист для всіх state-changing запитів
  • [ ] WAF (хоча б базовий через Cloudflare)

Залежності та конфігурація:

  • [ ] Регулярний npm audit / composer audit
  • [ ] Dependabot або аналог увімкнено
  • [ ] Секрети у змінних середовища, не в коді
  • [ ] SRI для зовнішніх скриптів

Моніторинг:

  • [ ] Логування спроб входу та критичних подій
  • [ ] Alerts для підозрілої активності
  • [ ] Регулярне резервне копіювання з перевіркою відновлення

Висновок: безпека — це процес, а не стан

Немає сайту, який "захищений назавжди". Кожен день з'являються нові вразливості, нові методи атак, нові інструменти зловмисників. Безпека — це не проект із датою завершення, а постійна дисципліна.

Але це не означає паранойю і нескінченні витрати. 80% захисту забезпечується базовими заходами: HTTPS, правильні заголовки, параметризовані запити, безпечні cookies, оновлені залежності. Більшість зламів стаються через відсутність саме цих основ.

Починайте з чеклісту. Виправляйте критичне першим. Впроваджуйте моніторинг. І пам'ятайте: безпека — це не витрата, а інвестиція, яка вартує незрівнянно менше, ніж наслідки серйозного зламу: втрата даних клієнтів, репутаційний збиток, штрафи GDPR, простій сервісу.

Поділитися
У пошуках підрядника з розробки сайту?
Заходьте до нашого online каталогу Веб-студій та вибирайте партнера за рядом критеріїв: бал, портфоліо, відгуки, кейси та статті. Або організуйте тендер в даному каталозі, вибравши компанії, що вам сподобалися.
Більше не потрібно шукати та обдзвонювати діджитал-агентства!
Створіть тендер та отримайте пропозиції від найкращих веб-студій України.
У каталозі 1700+ діджитал-агентств, які готові допомогти в реалізації ваших завдань. Вибирайте та економте до 30% свого часу та бюджету! Це безкоштовно та займе менше 3-х хвилин.
Створити тендер
Bug