Реалізувати клієнтський веб-інтерфейс адміністратора порталу як односторінковий веб-додаток (Single Page Application — SPA).
Для взаємодії веб-клієнта з веб-сервісом у рамках REST-архітектури використовувати технологію AJAX та методи протоколу HTTP (GET, POST, PUT, DELETE).
Важливо, щоб:
- веб-клієнт (SPA) та веб-сервіс (backend API) розміщувалися на різних доменах (або субдоменах / різних портах);
- для дозволу AJAX-запитів між різними джерелами (cross-origin) використовувати механізм CORS (Cross-Origin Resource Sharing).
- Broken Authentication
- Broken Access Control / BOLA / IDOR
- Cryptographic Failures
- SQL Injection
- Security Misconfiguration
- Vulnerable and Outdated Components
- Server-Side Request Forgery (SSRF)
- Cross-Site Scripting (XSS)
- Cross-Site Request Forgery (CSRF)
- Unrestricted Resource Consumption
Наприклад, якщо обрана вразливість Broken Access Control / BOLA / IDOR, то необхідно реалізувати:
- Усі операції адміністратора (перегляд, створення, редагування, видалення треків, альбомів, користувачів, плейлистів тощо) повинні проходити перевірку прав доступу на сервері.
- Заборонено покладатися лише на прихованість ID в URL або в тілі запиту.
- Кожний запит, що змінює або читає об’єкт за ідентифікатором (наприклад
/api/tracks/12345,/api/users/567), повинен перевіряти:- чи належить цей об’єкт поточному автентифікованому адміністратору (якщо це його власні дані),
- або чи має користувач глобальну роль адміністратора (admin).
- У разі спроби доступу до чужого об’єкта (наприклад, адміністратор №5 намагається змінити трек №12345, який належить адміністратору №2 або звичайному користувачу) — повертати 403 Forbidden або 404 Not Found (рекомендується 403).
- Не повертати в помилках інформацію, яка може допомогти атакуючому (наприклад, «цей трек належить іншому користувачу»).