Memahami fondasi web security: HTTP, cookies, CORS, security headers, dan cara praktis me-review header aplikasi kalian menggunakan Burp Suite

Setelah di episode 2 kita memahami strategi security testing, pada episode ini kita mulai dari fondasi paling dasar: web. Hampir semua security testing berfokus pada aplikasi web dan API, jadi pemahaman kuat tentang HTTP, cookies, CORS, dan security headers adalah prasyarat mutlak.
Mengapa ini penting? Karena security tester yang tidak memahami HTTP hanya akan melihat request/response tanpa mengerti potensi attack vector di dalamnya.
Setiap interaksi browser-server melibatkan HTTP request dan response. Security tester harus memahami:
Client Request Server Response
───────────── ───────────────
GET /api/users HTTP/1.1 HTTP/1.1 200 OK
Host: example.com Content-Type: application/json
Cookie: session=abc123 Set-Cookie: session=xyz789
Authorization: Bearer token {"users": [...]}| Method | Fungsi | Security Concern |
|---|---|---|
| GET | Ambil data | Tidak seharusnya mengubah state |
| POST | Buat data | Pastikan input divalidasi |
| PUT | Update data | Pastikan authorization benar |
| DELETE | Hapus data | Jangan expose ID yang bisa di-guess |
| OPTIONS | CORS preflight | Pastikan CORS policy ketat |
200 OK - Request berhasil
301/302 Redirect - Pastikan redirect aman (open redirect?)
400 Bad Request - Input invalid
401 Unauthorized - Tidak terotentikasi
403 Forbidden - Tidak terotorisasi
404 Not Found - Jangan expose path yang ada
500 Internal Error - Jangan expose error detail ke clientSet-Cookie: session=abc123; Path=/; HttpOnly; Secure; SameSite=Strict| Attribute | Fungsi | Security Impact |
|---|---|---|
| HttpOnly | Tidak bisa diakses via JavaScript | Mencegah XSS mencuri cookie |
| Secure | Hanya dikirim via HTTPS | Mencegah interception |
| SameSite | Batasi cross-site request | Mencegah CSRF |
| Path | Scope cookie ke path tertentu | Limitasi exposure |
# Cek cookies yang dikirim
curl -v http://localhost:3000 2>&1 | grep -i "set-cookie"Pastikan session cookie memiliki atribut HttpOnly, Secure, dan SameSite. Tanpa ini, session bisa dicuri melalui XSS atau CSRF.
CORS menentukan origin mana yang boleh mengakses resource. Misconfiguration CORS adalah vulnerability umum:
# Berbahaya: mengizinkan semua origin
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
# Aman: hanya izinkan origin tertentu
Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Credentials: trueWarning
Access-Control-Allow-Origin: * dengan Access-Control-Allow-Credentials: true adalah kombinasi berbahaya — setiap website bisa mencuri data dari aplikasi kalian.
Content-Security-Policy: default-src 'self'; script-src 'self'
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000; includeSubDomains
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: camera=(), microphone=(), geolocation=()# Review semua headers
curl -I http://localhost:3000
# Cek security headers spesifik
curl -sI http://localhost:3000 | grep -iE "(content-security|x-content-type|x-frame|strict-transport|referrer-policy)"Jalankan review header pada aplikasi Juice Shop:
# Lihat semua headers
curl -I http://localhost:3000
# Fokus pada security headers
curl -sI http://localhost:3000 | grep -iE "(security|x-frame|x-content|strict-transport|referrer)"Perhatikan header mana yang ada dan mana yang missing — ini adalah findings pertama kalian sebagai security tester.
Inti yang harus dibawa pulang:
HttpOnly, Secure, dan SameSite terkonfigurasi dengan benar.CSP, X-Frame-Options, HSTS, X-Content-Type-Options adalah minimum.Di episode 4 selanjutnya kita akan membahas OWASP Top 10 testing — cara menguji setiap kategori vulnerability dari Top 10, termasuk SQL injection, XSS, SSRF, dan IDOR. Sampai jumpa di episode 4!