OWASP Top 10 adalah daftar sepuluh risiko keamanan web yang paling sering dan paling berbahaya, disusun oleh komunitas keamanan. Anggap ini daftar belanja yang dibalik: bukan apa yang harus kamu beli, tapi sepuluh lubang yang paling sering bikin aplikasi kebobolan. Kalau kamu baru mulai, mengecek sepuluh hal ini sudah menutup sebagian besar cara aplikasi dibobol di dunia nyata.
🧪 Tebakan cepat: di edisi 2021, risiko mana yang menempati peringkat nomor satu? Tebak dulu, jawabannya ada di bagian "Daftar OWASP Top 10 (2021)".
Apa itu OWASP
OWASP adalah singkatan dari Open Web Application Security Project, sebuah organisasi non-profit yang menyediakan panduan dan tools keamanan aplikasi secara gratis. Salah satu karyanya yang paling terkenal adalah OWASP Top 10, yang di-refresh setiap beberapa tahun berdasarkan data serangan nyata.
Daftar OWASP Top 10 (2021)
Ini kesepuluh kategorinya. Di Lab, kamu bisa memilih tiap kategori, melihat contoh celahnya, lalu menyalakan perbaikannya.
- A01: Broken Access Control, user bisa mengakses data yang seharusnya bukan haknya. Ini peringkat nomor satu di 2021. Itu jawaban tebakannya.
- A02: Cryptographic Failures, data sensitif gak dilindungi enkripsi dengan benar.
- A03: Injection, input user ikut dieksekusi sebagai perintah (SQL, command, dan lainnya).
- A04: Insecure Design, kelemahan di keputusan arsitektur, bukan sekadar bug implementasi.
- A05: Security Misconfiguration, konfigurasi default yang tidak aman, misalnya debug mode menyala di production.
- A06: Vulnerable and Outdated Components, memakai library dengan celah yang sudah diketahui umum.
- A07: Identification and Authentication Failures, login tanpa pengaman seperti pembatas percobaan.
- A08: Software and Data Integrity Failures, gagal memverifikasi keaslian software atau data.
- A09: Security Logging and Monitoring Failures, tidak ada catatan untuk mendeteksi serangan.
- A10: SSRF (Server-Side Request Forgery), server dimanipulasi untuk membuat request ke resource internal.
Kategori yang mencakup input pengguna ikut dieksekusi sebagai perintah adalah A03: Injection.
Contoh: Broken Access Control (A01)
Celah yang sering muncul di A01 adalah IDOR (Insecure Direct Object Reference): user bisa membuka data user lain cuma dengan mengganti id di URL.
// RENTAN: tidak mengecek pemilik data
// User 123 login, lalu membuka /api/users/456
app.get('/api/users/:id/profile', (req, res) => {
res.json(getProfile(req.params.id)) // profil user 456 bocor ke user 123
})
// AMAN: cek dulu apakah id yang diminta milik si pengakses
app.get('/api/users/:id/profile', requireLogin, (req, res) => {
if (req.params.id !== req.user.id) {
return res.status(403).json({ error: 'Forbidden' })
}
res.json(getProfile(req.params.id))
})
- Versi rentan langsung mengembalikan profil berdasarkan id di URL, tanpa cek pemilik. Di Lab, ini terlihat sebagai response
200yang membocorkan data. - Versi aman membandingkan id yang diminta dengan id si pengakses, dan menolak dengan
403kalau beda. Di Lab, nyalakan perbaikan untuk melihat response berubah jadi403 Forbidden.
Edisi 2021 dan edisi 2025
OWASP Top 10 di-refresh tiap beberapa tahun. Pelajaran ini memakai penomoran edisi 2021 karena daftarnya stabil dan paling banyak dirujuk. OWASP juga merilis edisi 2025, dan sorotan utamanya: Broken Access Control tetap di peringkat satu, sementara risiko seputar security misconfiguration dan rantai pasok software (supply chain) naik, didorong insiden seperti log4shell dan paket npm yang dibajak. Penomoran persisnya bisa berubah tiap edisi, jadi selalu cek daftar terbaru di situs resmi owasp.org.
⚠️ Jebakan yang sering ketemu
- Menyembunyikan URL sebagai pengaman. A01 bukan soal id yang susah ditebak, tapi soal mengecek pemilik. Selalu bandingkan id yang diminta dengan id si pengakses.
- Menganggap Top 10 sebagai checklist lengkap. Ini titik awal, bukan daftar semua celah. Pakai untuk memprioritaskan, bukan satu-satunya acuan.
- Konfigurasi default di production. Debug mode menyala atau password database kosong itu A05, dan sering dilupakan.
- Lupa update dependency. Library dengan celah yang sudah diketahui umum (A06) dibobol otomatis oleh bot. Jalankan audit dependency rutin.
TL;DR: OWASP adalah Open Web Application Security Project, dan OWASP Top 10 adalah sepuluh risiko web paling kritis dari data nyata. Di edisi 2021, peringkat satu adalah Broken Access Control (A01), dan Injection (A03) mencakup input yang ikut dieksekusi sebagai perintah. Contoh A01 adalah IDOR: cek pemilik data, bukan sembunyikan id. Edisi 2025 tetap menaruh Broken Access Control di nomor satu; selalu cek daftar terbaru di owasp.org.