Web Application Security Fundamentals #05: Common Web Attack Vectors
Kenali jalur serangan umum seperti input, identity, session, upload, dependency, dan business logic tanpa menguji target publik.
Attack vector adalah jalur yang digunakan untuk mencapai kelemahan. Ia bukan sinonim vulnerability. Memahami perbedaannya membantu developer menempatkan control pada data flow yang benar.
Etika dan scope: praktikkan hanya pada local lab, aplikasi milik sendiri, atau sistem yang memberikan izin tertulis. Tutorial ini tidak mengizinkan pengujian terhadap target publik.

Tujuan pembelajaran
- membedakan vector, vulnerability, exploit, dan impact
- memetakan input, identity, session, upload, dependency, dan logic
- membuat abuse case tanpa menyerang target publik
- memilih prevention dan detection yang relevan
Prasyarat
Gunakan browser modern, Developer Tools, dan local lab. Catat versi tool serta environment ketika menguji. Output contoh bersifat ilustratif kecuali dinyatakan sebagai hasil pengujian; jangan menganggap perilaku satu stack berlaku universal.
1. Kelompokkan berdasarkan entry point
Entry point umum meliputi URL, query parameter, path, header, cookie, JSON body, form, GraphQL operation, WebSocket message, file upload, webhook, email link, dan admin interface. Inventory endpoint harus mencakup API yang tidak terlihat di menu UI.
2. Input menuju interpreter
Injection terjadi ketika untrusted data diperlakukan sebagai bagian dari command atau query. Control utama adalah API yang memisahkan data dari instruction, misalnya parameterized query. Validation tetap penting, tetapi escaping generik tidak dapat dipakai untuk semua context.
const result = await db.query(
"SELECT id, name FROM products WHERE id = $1",
[validatedProductId]
);
3. Identity dan session
Threat mencakup credential stuffing, weak recovery, session fixation, token leakage, dan authorization bypass. Rate limiting saja tidak cukup. Gunakan MFA sesuai risiko, password hashing yang tepat, session rotation, secure cookie, recovery yang setara kuatnya, dan alerting.
4. Browser-mediated attack
XSS berkaitan dengan eksekusi script pada origin korban; CSRF memanfaatkan browser yang otomatis membawa credential pada cross-site request. Mitigation berbeda: context-sensitive output encoding/CSP untuk XSS; anti-CSRF token, origin validation, dan SameSite sebagai defense in depth untuk CSRF.
5. File upload
Validasi extension saja lemah. Batasi size, type yang diizinkan, nama file buatan server, lokasi storage, permission, dan cara file disajikan kembali. Jangan mengeksekusi file upload sebagai code. Scan bila sesuai threat model, tetapi scanner bukan satu-satunya control.
6. Dependency dan supply chain
Risiko tidak berhenti pada CVE. Periksa sumber package, typosquatting, compromised maintainer, build pipeline, lockfile, artifact provenance, secret pada CI, dan update policy.
7. Business logic
Contoh aman untuk dipikirkan: coupon dipakai berulang, amount berasal dari client, approval dilewati, atau transaksi diproses dua kali. Scanner generik sering tidak memahami invariant bisnis. Tulis invariant dan test negative/concurrent behavior.
8. Detection
Log authentication failure, authorization denial sensitif, perubahan privilege, recovery, dan pola abuse—tanpa password atau token. Alert harus diuji end-to-end; log yang tidak pernah ditinjau bukan detection control.
Kesalahan umum
- Menganggap semua input berbahaya selesai dengan blacklist.
- Menggunakan WAF sebagai pengganti secure coding.
- Menaruh token pada URL.
- Mengabaikan endpoint lama dan admin.
- Mencoba payload pada website publik tanpa izin.
Quality gate sebelum diterapkan
- [ ] Scope dan asset sudah jelas.
- [ ] Control dijalankan di sisi yang menjadi security boundary.
- [ ] Positive test dan negative test tersedia.
- [ ] Error tidak membocorkan secret atau detail internal.
- [ ] Logging cukup untuk detection tanpa merekam credential.
- [ ] Versi dependency dan dokumentasi dicatat.
- [ ] Tidak ada klaim “100% aman”.
- [ ] Perubahan diuji pada staging atau local lab.
Kesimpulan
Attack vector menunjukkan jalur risiko. Berikutnya kita memasukkan security ke seluruh Secure Software Development Lifecycle agar perbaikannya tidak selalu terlambat.
Referensi resmi
- OWASP Top 10:2025 — diakses 22 Agustus 2026.
- OWASP Cheat Sheet Series — diakses 22 Agustus 2026.
- OWASP Web Security Testing Guide — Stable — diakses 22 Agustus 2026.
- MDN Web Security — diakses 22 Agustus 2026.
Post Terkait
Web Application Security Fundamentals #04: Mengenal OWASP Top 10:2025
Mengenal kategori OWASP Top 10:2025, perubahan dari 2021, batas penggunaannya, serta cara mengubahnya menjadi backlog en...
Web Application Security Fundamentals #03: Arsitektur Web dan Request–Response
Bedah aliran browser, CDN, reverse proxy, web server, API, dan database untuk menemukan trust boundary serta lokasi secu...
Web Application Security Fundamentals #02: Tujuan Utama Web Security
Menerjemahkan Confidentiality, Integrity, Availability, dan Authenticity menjadi security requirement yang konkret dan b...