Blog Post

Best blog
of the week...

KSATRIA 3 menit baca

Checklist Keamanan Aplikasi Web Berdasarkan OWASP Top 10

Foto profil Rizaldy Primanta Putra dari GitHub

Rizaldy Putra

Checklist Keamanan Aplikasi Web Berdasarkan OWASP Top 10

Keamanan aplikasi web bukan pekerjaan yang selesai ketika login sudah dibuat. Risiko dapat muncul dari kontrol akses, input yang tidak divalidasi, dependency yang usang, secret yang bocor, konfigurasi cloud, dan proses pemulihan yang belum pernah diuji. Checklist OWASP membantu tim membahas area penting secara sistematis, tetapi setiap item tetap perlu dikaitkan dengan alur bisnis dan data yang benar-benar dilindungi.

Kontrol akses harus diuji sebagai user berbeda

Authentication menjawab siapa pengguna, sedangkan authorization menjawab apa yang boleh dilakukan. Uji endpoint dan halaman admin dengan role yang berbeda. Jangan hanya menyembunyikan tombol di frontend karena request masih dapat dibuat langsung ke API. Periksa ownership resource, tenant boundary, status akun, dan izin untuk operasi sensitif. Banyak kebocoran terjadi karena object id yang dapat ditebak dianggap cukup untuk mengakses data.

Session dan credential juga perlu memiliki batas. Password disimpan dengan hash yang kuat, token memiliki expiry, dan reset link hanya dapat digunakan sesuai aturan. Logout, rotasi refresh token, rate limit, serta lockout membantu membatasi dampak credential yang dicuri. Pesan error sebaiknya tidak membocorkan apakah email tertentu terdaftar atau field internal yang digunakan server.

Input, output, dan dependency

Validasi input harus dilakukan di server untuk setiap boundary: query, body, path parameter, file upload, dan header yang dipercaya. Gunakan allowlist untuk format dan panjang, lalu encode output sesuai konteks. Sanitasi HTML diperlukan ketika rich text akan dirender. Jangan membangun query atau command dari string mentah. Untuk file, periksa ukuran, tipe, dan magic bytes, bukan hanya ekstensi yang dikirim browser.

Dependency dan konfigurasi perlu dipantau sepanjang siklus produk. Update keamanan jangan menunggu insiden. Buat daftar package, batasi dependency yang tidak perlu, dan pisahkan secret dari repository. Di production, aplikasi harus gagal boot ketika konfigurasi keamanan wajib hilang, bukan membuat nilai rahasia sementara. Log tidak boleh berisi password, token, payment secret, atau data pribadi yang tidak diperlukan untuk diagnosis.

Webhook dan alur pembayaran

Webhook pembayaran harus memverifikasi signature, timestamp, idempotency, dan hubungan antara nominal, order, serta reference id. Jangan menandai invoice lunas hanya karena request memiliki status PAID. Server perlu memastikan event datang dari sumber yang benar dan belum diproses. Jika provider melakukan retry, proses kedua harus menghasilkan status yang sama tanpa menggandakan reward, stok, atau pengiriman.

Observability juga termasuk kontrol keamanan. Catat request id, actor, perubahan status, dan hasil validasi dalam audit trail yang dapat ditinjau. Pisahkan log operasional dari data bisnis yang sensitif. Siapkan alert untuk login gagal berulang, perubahan role, webhook invalid, dan lonjakan error. Terakhir, lakukan backup restore test dan dokumentasikan langkah pemulihan agar tim tidak belajar prosedur ketika sistem sedang bermasalah.

Checklist sebaiknya menjadi kebiasaan dalam siklus delivery, bukan dokumen yang dibuka sekali sebelum launch. Tinjau threat model ketika fitur baru menambah data atau integrasi. Jalankan dependency scan, uji permission dengan role berbeda, dan pastikan perubahan keamanan memiliki pemilik yang dapat menindaklanjuti temuannya sampai selesai.

Jika insiden terjadi, utamakan containment, bukti, dan komunikasi yang jelas. Cabut credential yang terdampak, batasi akses sementara, simpan timeline perubahan, lalu verifikasi pemulihan sebelum membuka trafik penuh. Setelah itu lakukan post-incident review tanpa mencari kambing hitam. Tujuannya adalah memperbaiki kontrol, alert, dan proses agar pola yang sama tidak berulang.

Keamanan sebagai bagian dari delivery

RekberPay menunjukkan mengapa status transaksi dan audit trail penting dalam produk digital, sementara praktik desain API membantu menjaga boundary antar layanan. Untuk konteks delivery yang lebih luas, baca artikel KSATRIA tentang jasa IT Indonesia. Informasi layanan, konsultasi, dan kontak tersedia di ksatriacorp.com.

Tagged with :
keamanan aplikasi web OWASP Top 10 web security Indonesia audit keamanan API security webhook validation PT. INOVASI KSATRIA INDONESIA