security
Saya memperlakukan keamanan sebagai bagian dari desain, bukan checklist akhir.
Halaman ini merangkum pendekatan keamanan yang benar-benar saya terapkan di blogcms dan CafePOS — termasuk celah yang pernah ditemukan dan bagaimana ditutup.
fokus area
Tiga pilar yang selalu saya audit
authentication
Identitas & Sesi
OTP, 2FA, riwayat login, dan manajemen sesi yang bisa dicabut sewaktu-waktu tanpa harus mengganti password.
authorization
IDOR & Tenant Isolation
Memastikan ID yang bisa ditebak tidak pernah cukup untuk mengakses data milik pengguna atau tenant lain.
data hygiene
Credential & Secret Management
Rotasi .env, pemisahan secret per environment, dan audit log untuk aksi sensitif.
threat & mitigation log
Temuan nyata dan cara penanganannya
| Area | Temuan | Mitigasi | Severity |
|---|---|---|---|
| CafePOS — Mobile API | Token mobile awal tidak divalidasi ulang saat request order, memungkinkan reuse token lintas sesi. | Overhaul autentikasi mobile: signed token dengan expiry pendek + validasi ulang di setiap request sensitif. | high |
| CafePOS — Order Endpoint | ID order berurutan bisa ditebak, berpotensi membuka data order tenant lain (IDOR). | Semua query order dipaksa lewat helper tenant-scoped; ID diverifikasi terhadap tenant_id sebelum data dikembalikan. | high |
| blogcms — Sessions | Tidak ada cara bagi user melihat/mengakhiri sesi aktif di device lain. | Ditambahkan halaman session management + login history agar user bisa memutus akses dari device asing. | medium |
| Deployment — .env | Credential lama sempat tercampur antara environment development dan production. | Rotasi penuh secret + pemisahan file .env per environment dengan permission ketat. |
medium |
| CafePOS — QR Ordering | QR meja berpotensi difoto ulang dan dipakai di luar konteks sesi asli. | QR token ditandatangani dan diberi masa berlaku singkat, terikat ke sesi meja aktif. | low |
masih belajar, tetap transparan