Beranda

Security

Web Application Security Fundamentals #0...

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.

Web Application Security Fundamentals #05: Common Web Attack Vectors
3 dibaca
Belum ada penilaian

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.

Ilustrasi perlindungan web application

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

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...

24 Agt 2026

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...

24 Agt 2026

Web Application Security Fundamentals #02: Tujuan Utama Web Security

Menerjemahkan Confidentiality, Integrity, Availability, dan Authenticity menjadi security requirement yang konkret dan b...

22 Agt 2026

© 2026 Yowisben. Semua hak dilindungi.

Powered by LONTAR CMS v1.71.0