~/portfolio/security.html
UTF-8 LF HTML5

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

AreaTemuanMitigasiSeverity
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

Saya bukan security expert — tapi saya serius mempelajarinya.

main | Ln 1, Col 1
no problems detected
UTF-8 00:00:00