📊 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'='1

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

Dokumentasi diperbarui secara berkala • Referensi OWASP