OWASP Top 10 Deep Dive
Pahami ancaman web paling kritis
Tujuan Pembelajaran
- Memahami OWASP Top 10 detail
- Bisa mengidentifikasi vulnerability
Analogi
OWASP = Daftar Buronan
10 ancaman paling dicari
Developer = Detektif
Tahu cara mengidentifikasi dan cegah
OWASP Top 10 adalah standar industri untuk ancaman web
Penjelasan Konsep
OWASP Top 10
OWASP Top 10 adalah daftar 10 risiko keamanan web paling kritis. Versi terbaru adalah 2021.
A01: Broken Access Control.
User bisa akses resource yang seharusnya tidak boleh. Contoh: ganti URL /user/123 jadi /user/124 dan lihat data orang lain.
A02: Cryptographic Failures.
Data sensitif tidak dienkripsi. Password plain text, TLS tidak dipakai, algoritma lemah.
A03: Injection.
Input tidak di-validate masuk ke query. SQL injection, NoSQL injection, OS command injection.
A04: Insecure Design.
Flaw di desain aplikasi. Tidak ada rate limiting, business logic flaw.
A05: Security Misconfiguration.
Konfigurasi default tidak aman. Error message expose info, unnecessary features enabled.
A06: Vulnerable Components.
Dependency dengan vulnerability yang diketahui. Old library versions.
A07: Authentication Failures.
Autentikasi lemah. Brute force possible, session tidak expire.
A08: Data Integrity Failures.
Data bisa diubah tanpa deteksi.
A09: Logging Failures.
Tidak ada audit trail. Attack tidak terdeteksi.
A10: SSRF.
Server membuat request ke internal resources yang seharusnya tidak bisa diakses.
Inti yang Perlu Dipahami
Bagian ini berfokus pada memahami OWASP Top 10 detail., dan bisa mengidentifikasi vulnerability. Jangan terburu-buru menghafal istilahnya. Lebih penting untuk memahami peran setiap konsep dan kapan konsep itu muncul dalam pekerjaan web development.
Saat membaca OWASP Top 10 Deep Dive, gunakan tujuan belajar sebagai penanda arah. Kalau kamu sudah bisa menjelaskan tujuan itu dengan kata-katamu sendiri, berarti fondasinya mulai terbentuk.
Cara Membayangkannya
OWASP Top 10 adalah standar industri untuk ancaman web. Analogi ini dipakai supaya konsep teknis tidak terasa melayang. Hubungkan setiap istilah dengan perannya: siapa yang meminta, siapa yang memproses, data apa yang berpindah, dan hasil apa yang diharapkan.
Kalau analoginya sudah terasa masuk akal, barulah lihat istilah teknisnya. Cara ini membuat materi lebih mudah dipahami daripada langsung menghafal definisi.
Saat Melihat Contoh Kode
Contoh kode pada chapter ini memakai bahasa typescript. Bacalah contoh kode sebagai ilustrasi alur, bukan sebagai bagian yang harus langsung dihafal. Vulnerable: string concatenation. Fixed: parameterized query. Input selalu diperlakukan sebagai data.
Perhatikan nama fungsi, urutan langkah, dan data yang berpindah. Biasanya tiga hal itu sudah cukup untuk memahami hubungan antara teori dan praktik.
Konteks dalam Perjalanan Belajar
Setiap konsep di platform ini dipilih karena dipakai di industri. Fokus pada pemahaman, bukan hafalan.
Kamu sudah di bagian lanjutan. Mulai pikirkan bagaimana konsep ini dipakai di dunia kerja — bukan hanya untuk belajar, tapi untuk membangun produk nyata.
Gunakan pertanyaan reflektif dan prompt AI di akhir chapter sebagai latihan aktif. Membaca saja tidak cukup — kamu perlu menjelaskan ulang dengan kata-katamu sendiri.
Contoh Kode
// SQL INJECTION — VULNERABLE
const user = await db.query(`SELECT * FROM users WHERE email = '${email}'`);
// Input: ' OR '1'='1' --
// Result: SELECT * FROM users WHERE email = '' OR '1'='1' --'
// Mengembalikan SEMUA user!
// SQL INJECTION — FIXED
const user = await db.query('SELECT * FROM users WHERE email = ?', [email]);
// Parameterized query — input diperlakukan sebagai data, bukan queryPenjelasan Kode
Prompt AI
Identifikasi 3 vulnerability di aplikasi kamu berdasarkan OWASP Top 10.
Pertanyaan Reflektif
Kenapa SQL injection masih menjadi ancaman setelah 20 tahun?