📊 Dashboard Edukasi
Panduan lengkap untuk memahami kerentanan keamanan web dan cara memperbaikinya.
Cross‑Site Scripting (XSS)
🧐 Apa itu XSS?
XSS adalah kerentanan yang memungkinkan penyerang menyuntikkan script berbahaya ke halaman web yang dilihat oleh pengguna lain. Script ini bisa mencuri cookie, session token, atau informasi sensitif lainnya.
📋 Jenis-jenis XSS
Stored XSS
Script berbahaya disimpan di database dan ditampilkan ke semua pengunjung.
Reflected XSS
Script dipantulkan oleh server melalui URL atau parameter request.
DOM-based XSS
Script dieksekusi langsung di browser melalui manipulasi DOM.
❌ Kode Rentan
<div v-html="userComment"></div>Masalah: v-html mengeksekusi HTML mentah, termasuk tag script.
✅ Kode Aman
<div></div>Solusi: Interpolasi teks otomatis men-escape karakter berbahaya.
🛡️ Cara Mencegah XSS
- ✓Output Encoding: Selalu encode output sebelum ditampilkan.
- ✓Content Security Policy (CSP): Batasi sumber script yang boleh dieksekusi.
- ✓Input Validation: Validasi dan sanitasi input pengguna.
- ✓HttpOnly Cookies: Cegah akses cookie dari JavaScript.
SQL Injection (SQLi)
🧐 Apa itu SQL Injection?
SQL Injection adalah teknik serangan yang memanfaatkan celah keamanan pada input pengguna untuk menyisipkan perintah SQL berbahaya. Penyerang bisa membaca data sensitif, memodifikasi database, atau bahkan mengambil alih server.
💉 Payload Klasik
' OR '1'='1Payload ini menutup kutip pembuka dan menambahkan kondisi yang selalu TRUE.
❌ Kode Rentan
const query = "SELECT * FROM users WHERE username = '" + username + "' AND password = '" + password + "'"Masalah: Input langsung digabungkan ke string query.
✅ Kode Aman
const query = "SELECT * FROM users WHERE username = $1 AND password = $2"
const values = [username, password]Solusi: Parameterized Query (Prepared Statement).
🛡️ Cara Mencegah SQL Injection
- ✓Parameterized Queries: Pisahkan data dari struktur query.
- ✓ORM / Query Builder: Gunakan library yang sudah aman (Supabase, Prisma).
- ✓Input Validation: Validasi tipe data dan format input.
- ✓Least Privilege: Batasi hak akses database user aplikasi.
Security Headers
Security Headers adalah lapisan pertahanan di level HTTP yang melindungi aplikasi dari berbagai serangan. Aplikasi ini dilindungi oleh header modern sesuai standar OWASP.
Content-Security-Policy
Mencegah XSS dengan membatasi sumber script.
HSTS
Memaksa browser menggunakan HTTPS.
X-Frame-Options
Mencegah clickjacking.
X-Content-Type-Options
Mencegah MIME sniffing.
Security Best Practices
🔒 Development
- • Selalu validasi dan sanitasi input
- • Gunakan parameterized queries
- • Escape output sebelum ditampilkan
- • Jangan hardcode credentials
🚀 Deployment
- • Aktifkan HTTPS (HSTS)
- • Konfigurasi Security Headers
- • Rutin update dependencies
- • Audit keamanan berkala
💡 Pro Tip: Keamanan adalah proses, bukan produk. Selalu terapkan Defense in Depth — lapisan pertahanan berlapis.