Keamanan Website: Panduan Dasar untuk Developer

Panduan keamanan website dasar: CSRF protection, password hashing, brute force prevention, dan security headers.

Keamanan Website: Panduan Dasar untuk Developer

Keamanan website bukan hal yang bisa diabaikan. Setiap tahun, jutaan website menjadi korban serangan cyber. Artikel ini membahas langkah-langkah dasar namun krusial untuk mengamankan website Anda.

1. CSRF Protection

Cross-Site Request Forgery (CSRF) adalah serangan yang memaksa pengguna terautentikasi melakukan aksi yang tidak diinginkan. Pencegahannya:

  • Gunakan CSRF token di setiap form
  • Verifikasi token di server sebelum memproses request
  • Regenerasi token setelah login

2. Password Hashing

Jangan pernah menyimpan password dalam bentuk plain text atau MD5. Gunakan algoritma modern seperti bcrypt:

// PHP - Hash password
$hash = password_hash($password, PASSWORD_BCRYPT, ['cost' => 12]);

// Verify
$valid = password_verify($input, $hash);

3. Brute Force Protection

Implementasikan pembatasan percobaan login:

  • Batasi maksimal 5 percobaan login
  • Kunci akun selama 15 menit setelah gagal
  • Log semua percobaan login yang gagal

4. Security Headers

Tambahkan HTTP security headers melalui konfigurasi server:

X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Referrer-Policy: strict-origin-when-cross-origin

5. Input Validation

Selalu validasi dan sanitasi semua input dari pengguna. Ini adalah garis pertahanan pertama terhadap serangan XSS dan SQL injection.

Security is not a product, but a process. — Bruce Schneier