Авторка: Катерина Іваненко, Brand Manager (Invicti & Acunetix) в CoreWin
У статті наведено “шпаргалку” з безпеки вебсайтів – компактний та практичний посібник, що охоплює основні найкращі практики для захищеності вебзастосунків.
1. Безпека сервера та хостингу
- Використання HTTPS для всіх сторінок (рекомендується застосовувати HSTS (HTTP Strict Transport Security)).
- Оновлення операційної системи та програмного забезпечення сервера.
- Обмеження доступу за допомогою брандмауерів, білого списку IP-адрес та автентифікації за ключами SSH.
- Вимкнення непотрібних служб та портів.
2. Автентифікація та контроль доступу
- Застосування політик надійних паролів.
- Впровадження багатофакторної автентифікації.
- Використання механізмів сторонньої автентифікації, таких як OAuth 2.0 або OpenID Connect, із забезпеченням коректної перевірки токенів і захищеної обробки переадресацій.
- Запобігання brute-force атакам за допомогою обмеження кількості запитів та блокування облікових записів.
- Встановлення тайм-аутів сесій та використання безпечних параметрів cookie (HttpOnly, Secure, SameSite=Lax або Strict) для запобігання крадіжці або зловживанню.
3. Запобігання поширеним атакам
- Очищення всіх вхідних даних користувача.
- Екранування або кодування вихідних даних на основі їх контексту (HTML, JavaScript, CSS, URL тощо) для запобігання вразливостям ін’єкцій.
- XSS (міжсайтовий скриптинг): кодування вихідних даних з урахуванням контексту та застосування заголовків політики безпеки контенту (CSP, Content Security Policy).
- SQL-ін’єкція: використання параметризованих запитів та безпечних фреймворків ORM.
- CSRF (міжсайтова підробка запиту): застосування анти-CSRF токенів та встановлення атрибутів cookie SameSite (Lax або Strict).
- Обхід каталогу: перевірка шляхів (paths) до файлів, обмеження безпечними каталогами та уникнення прямого використання шляхів, наданих користувачем.
- Ін’єкція команд: ніколи не передавати вхідні дані користувача безпосередньо системним командам.
4. Безпечна обробка файлів
- Перевірка типів файлів та MIME (медіа).
- Використання рандомізованих та очищених назв файлів.
- Зберігання завантажених файлів поза доступним вебкаталогом для запобігання прямому доступу.
- Встановлення суворих дозволів на доступ до файлів (наприклад, 0644) та вимкнення дозволів на виконання завантажених файлів.
- Обмеження розміру файлу.
5. Безпечні конфігурації та секрети
- Уникнення жорсткого кодування ключів API, паролів або облікових даних у вихідному коді для запобігання їх розкриття.
- Використання безпечного сховища для секретів.
- Видалення дебаг коду та детальних повідомлень про помилки у продакшні.
6. Заголовки (хедери) та безпека вмісту
- Встановлення надійних заголовків безпеки:
Content-Security-Policy
Strict-Transport-Security
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Referrer-Policy: no-referrer
- Вимкнення непотрібних функцій браузера за допомогою Permissions-Policy.
7. Моніторинг та логування
- Ведення журналу спроб входу, змін та помилок, але без логування конфіденційних даних.
- Використання WAF (брандмауерів вебзастосунків).
- Моніторинг змін файлів, аномалій трафіку та спроб вторгнення.
8. Тестування безпеки та виправлення
- Регулярне тестування безпеки за допомогою інструментів DAST, таких як Invicti (раніше Netsparker), та рішень SAST, таких як Mend.io. Якщо ви бажаєте безкоштовно протестувати ці рішення, ви можете зв’язатися з нами зручним для вас способом.
- Використання інструментів перевірки залежностей, таких як Mend.io.
- Своєчасне застосування виправлень.
9. Безпечний життєвий цикл розробки ПЗ (SDLC)
- Врахування безпеки на ранніх етапах.
- Впровадження рекомендацій щодо безпечного написання коду.
- Створення конвеєрів DevSecOps з автоматизованим скануванням безпеки.
Таким чином, команди можуть покращити рівень безпеки вебсайтів компанії та забезпечити їх стійкість у сучасному ландшафті загроз.






