# Cyber Asset Manager V2 Hardened — Security Notes

V2 menambahkan defense-in-depth untuk penggunaan panel asset pribadi di hosting cPanel. Tidak ada aplikasi web yang dapat dijamin 100% kebal, jadi tetap gunakan HTTPS, password unik, patch server, dan firewall/WAF bila tersedia.

## Proteksi yang aktif

- Credentials di luar document root (`public_html`).
- Setup awal membutuhkan random setup key 128-bit yang hanya tersedia sebagai file lokal server.
- Login rate-limit server-side per IP dan delay progresif.
- Session strict mode, cookie HttpOnly/SameSite=Strict, timeout idle dan absolute, session ID rotation, User-Agent binding.
- CSRF pada semua perubahan termasuk logout.
- CSP dan security headers.
- Upload allow-list berdasarkan MIME hasil `fileinfo`, validasi image header, limit ukuran/dimensi/pixel, extension ditentukan server.
- Path canonicalization, traversal check, symlink rejection, reserved-file protection.
- Upload directory menolak file executable/markup aktif sebagai lapisan tambahan.

## Cloudflare

`trusted_client_ip_header` dibiarkan kosong secara default agar client tidak dapat memalsukan IP melalui header. Gunakan `HTTP_CF_CONNECTING_IP` hanya jika origin tidak bisa diakses langsung dan semua traffic benar-benar melewati Cloudflare.

## Batasan

- Rate-limit aplikasi bukan pengganti firewall/WAF untuk serangan volumetrik.
- `.htaccess` hanya efektif pada Apache/LiteSpeed yang mengizinkan override. Untuk Nginx, tambahkan rule eksekusi script di level server.
- Asset yang memang publik di `/assets/images/` tentu dapat diakses siapa pun yang mengetahui URL-nya. Login melindungi pengelolaan, bukan kerahasiaan gambar publik.
