# Security notes

Portal ini adalah fondasi implementasi dan tetap harus menjalani peninjauan keamanan sebelum memproses data produksi.

## Sudah diterapkan

- Prepared statements PDO dengan emulasi dinonaktifkan.
- Password hashing menggunakan API bawaan PHP.
- Regenerasi session ID setelah login.
- Cookie sesi `HttpOnly` dan `SameSite=Lax`.
- CSRF token pada semua operasi perubahan data.
- Rate limit percobaan login berbasis username dan alamat IP.
- Autorisasi server-side untuk route admin dan akses slip.
- Transaksi impor all-or-nothing.
- Document root hanya mengarah ke `public/`.
- Header anti-framing, MIME sniffing, dan pembatasan permissions.

## Sebelum produksi

- Gunakan HTTPS dan aktifkan cookie `Secure`.
- Tambahkan Content Security Policy yang disesuaikan dengan reverse proxy produksi.
- Tambahkan audit trail permanen untuk pembuatan akun, perubahan data, impor, dan reset password.
- Sediakan proses reset password yang memverifikasi identitas pegawai melalui HR.
- Terapkan pengelolaan rahasia dan rotasi credential database.
- Jalankan SAST, dependency scanning image Docker, uji penetrasi, serta privacy review.
- Tetapkan masa retensi slip dan prosedur penghapusan akun sesuai kebijakan organisasi.
