Безпека починається з питання «що ми захищаємо?»
Лендінг із формою та сервіс, що зберігає акаунти, документи й замовлення, потребують різного рівня захисту. База однакова: мінімізувати доступ, не публікувати секрети, оновлювати залежності й планувати помилки.
1. Лише HTTPS для публічного сайту
Форми входу, cookies і персональні дані не повинні передаватися відкритим текстом. Налаштуйте TLS і перенаправлення HTTP → HTTPS. Сучасні платформи зазвичай оновлюють сертифікати автоматично.
2. Довгі унікальні паролі та MFA для адмінів
Повторне використання пароля перетворює витік одного сервісу на доступ до кількох систем. Для адмінів використовуйте MFA, а для команди — менеджер паролів.
3. Секрети не мають потрапляти у frontend і Git
Доступи до бази, SMTP-паролі, секрети сесій і приватні токени мають зберігатися в environment variables або secret storage. Усе, що відправлено в JavaScript браузера, слід вважати публічним.
4. Перевіряйте права на сервері
Сховати кнопку «Видалити замовлення» від звичайного користувача — це UX, а не захист. Backend має перевіряти роль для кожного привілейованого запиту.
5. Завантаження файлів потребує окремої уваги
- Обмежуйте розмір.
- Перевіряйте вміст, а не лише розширення.
- Не довіряйте початковому імені файла.
- Зберігайте користувацькі файли окремо від коду.
- Для ризикових форматів використовуйте malware scanning/карантин.
- Перевіряйте право на кожне приватне завантаження.
6. Валідуйте форми на backend і використовуйте rate limit
Frontend-валідація зручна, але її можна обійти. Сервер має повторно перевіряти email, довжину, обов’язкові поля та допустимі значення. Для входу й reset-форм потрібні також rate limit і захист від спаму.
7. Оновлюйте систему
Застаріла CMS, plugin або бібліотека з відомою вразливістю — очевидна точка входу. Регулярно перевіряйте оновлення та видаляйте непотрібні залежності.
8. Backup має існувати до інциденту
Backup захищає не лише від злому: помилки міграції та випадкове видалення трапляються часто. Копіюйте базу й файли та хоча б раз протестуйте відновлення.
9. Логи допомагають зрозуміти, що сталося
Зберігайте помилки сервера та важливі адмін-дії, але не записуйте паролі, сирі токени чи зайві персональні дані.
Мінімальний чеклист перед запуском
- HTTPS і безпечні cookies.
- Секрети лише в environment/secret storage.
- Адмін-endpoints перевіряють роль на сервері.
- MFA для адміністраторів.
- Форми й файли валідовані на backend.
- Backup і перевірений процес відновлення.
10. Ставтеся до сесії як до ключа від акаунта
Browser-сесії потребують безпечних cookie, розумного строку життя й скасування після зміни пароля. Для адміністратора правила можуть бути суворішими.
11. Не збирайте дані «про всяк випадок»
Чим менше чутливих даних ви зберігаєте, тим менші наслідки можливого витоку. Якщо дата народження не потрібна для замовлення — не просіть її. Визначайте строки зберігання файлів.
12. Заздалегідь вирішіть, що робити при інциденті
Навіть короткий план допомагає: хто отримує повідомлення, як тимчасово вимкнути небезпечну функцію, де змінити секрети, як відкликати сесії, звідки відновити backup і які логи зберегти.
Безпека — не стан «один раз налаштували». Нові інтеграції та ролі змінюють модель ризиків.
Потрібен сайт, який не закінчується красивим макетом?
KAMERTON займається дизайном і розробкою: від структури та інтерфейсу до production-запуску.
Переглянути проєкти →