← Kembali ke daftar artikel

Keamanan Website vanJogja: Langkah Nyata Melindungi Data & Mencegah Deface

31 May 2026 Tim vanJogja
Ringkasan Artikel

Bagaimana vanJogja mengamankan server web: HTTPS, security headers, CSRF token, IP rate limiting, WAF rules, dan perlindungan direktori admin dari serangan deface dan brute force.

⏱ Waktu baca: ~3 menit · 680 kata

Keamanan website bukan sekadar fitur tambahan — ini adalah fondasi kepercayaan. Di vanJogja, kami secara aktif melakukan audit dan penguatan keamanan server secara berkala. Artikel ini mendokumentasikan langkah-langkah nyata yang sudah kami terapkan langsung di server produksi.

1. Migrasi dari FTP ke SFTP

Langkah pertama yang kami lakukan adalah mengganti protokol transfer file dari FTP biasa ke SFTP (SSH File Transfer Protocol). FTP standar mengirim username dan password dalam bentuk teks polos di jaringan, sehingga sangat rentan disadap.

Dengan SFTP di port khusus, seluruh proses transfer file — termasuk deployment kode — kini dienkripsi secara penuh. Tidak ada satu pun kredensial yang berpindah dalam bentuk teks polos.

2. Security Headers di .htaccess

Kami menambahkan serangkaian HTTP security headers yang melindungi pengunjung dari berbagai jenis serangan sisi browser:

  • X-Frame-Options: SAMEORIGIN — mencegah halaman vanJogja dibuka dalam iframe situs lain (clickjacking)
  • X-Content-Type-Options: nosniff — mencegah browser menebak tipe konten secara sembarangan
  • Strict-Transport-Security — memaksa browser selalu menggunakan HTTPS selama 1 tahun
  • Referrer-Policy — membatasi informasi yang dikirim ke situs eksternal saat ada klik tautan
  • Permissions-Policy — menonaktifkan akses ke kamera, mikrofon, GPS, dan payment API yang tidak dibutuhkan
  • Content-Security-Policy (CSP) — membatasi sumber script, style, dan gambar hanya dari domain yang diizinkan

Selain itu, header X-Powered-By dan Server yang biasanya mengekspos versi PHP dan nama web server kini disembunyikan sepenuhnya.

3. CSRF Protection pada Semua Form Publik

Cross-Site Request Forgery (CSRF) adalah serangan di mana situs jahat membuat browser pengunjung mengirimkan request ke situs Anda tanpa sepengetahuan pengguna. Kami menambahkan CSRF token pada seluruh form publik:

  • Form kontak (/hubungi)
  • Form login member
  • Form registrasi member

Setiap request POST kini memverifikasi token unik yang hanya diketahui oleh server dan browser pengguna yang sah. Request tanpa token valid akan langsung ditolak dengan HTTP 419.

4. Session Security — Cookie Flags yang Tepat

Session cookie admin dan member kini dikonfigurasi dengan flag keamanan yang eksplisit:

  • HttpOnly — cookie tidak dapat dibaca oleh JavaScript, mencegah pencurian session via XSS
  • Secure — cookie hanya dikirim melalui koneksi HTTPS
  • SameSite: Strict — cookie tidak akan dikirim bersama request lintas situs
  • Strict Mode — server menolak session ID yang tidak diinisiasi olehnya sendiri

5. Proteksi Anti-Deface: WAF Rules

Serangan deface seringkali diawali oleh scanner otomatis yang mencari celah. Kami menambahkan Web Application Firewall (WAF) rules langsung di .htaccess untuk memblokir:

  • Scanner otomatis seperti Nikto, SQLMap, Nuclei, Nmap, Acunetix, dan sejenisnya
  • Request tanpa User-Agent — ciri khas bot primitif
  • Query string berbahaya — pola seperti ?cmd=, ?exec=, path traversal, null byte, dan remote file include
  • Upload webshell via POST — request yang mengandung tag PHP di body

Folder upload juga sudah dikonfigurasi untuk memblokir eksekusi file PHP, sehingga webshell yang berhasil terupload pun tidak dapat dijalankan.

6. Proteksi Brute Force Login Admin

Panel admin kini dilindungi oleh sistem anti-brute force berlapis:

  • Per-akun lockout — 5 kali salah maka akun terkunci 30 menit
  • IP-based rate limiting — 10 kali gagal dari IP yang sama (termasuk username tidak valid) maka IP diblokir 15 menit secara otomatis
  • Sleep delay — setiap attempt gagal mendapat jeda 1 detik, membatasi kecepatan serangan secara signifikan
  • CAPTCHA — menghambat serangan otomatis
  • Audit log — setiap percobaan login berhasil maupun gagal dicatat beserta IP dan user agent

Celah yang sebelumnya ada: attacker bisa mencoba ribuan username berbeda tanpa pernah kena lockout, karena lockout hanya berlaku per-akun yang ada di database. IP-based rate limiting menutup celah tersebut secara menyeluruh.

7. Sanitasi Pesan Error Database

Detail error dari database — seperti nama tabel, struktur query, atau pesan MySQL — sebelumnya berpotensi terekspos ke pengguna saat terjadi kegagalan proses. Kini, pesan tersebut hanya dikirim ke error log server, sementara pengguna hanya melihat pesan generik yang aman.

Kesimpulan

Keamanan adalah proses berkelanjutan, bukan kondisi final. Setiap lapisan yang kami tambahkan — dari enkripsi transfer file, proteksi browser, validasi form, hingga pembatasan akses — bekerja bersama untuk mempersempit permukaan serangan.

Jika Anda menggunakan platform web dari vanJogja, semua lapisan keamanan ini sudah aktif secara otomatis di server Anda. Kami terus memperbarui dan meningkatkan standar keamanan seiring berkembangnya ancaman digital.

Website aman bukan privilese — ini standar minimum yang semua bisnis online berhak dapatkan.

Produk Desain Terkait

Lihat Semua Produk
Tim vanJogja
Tim Konten & Digital Marketing · Vanjogja Digital

Vanjogja Digital adalah tim spesialis website untuk bisnis jasa UMKM di Indonesia. Kami telah membantu 100+ bisnis lokal online dengan sistem pesanan, pembayaran, dan konten yang dikelola sendiri — tanpa keahlian teknis. Artikel ini ditulis berdasarkan pengalaman langsung mendampingi klien UMKM.

✅ 5+ tahun pengalaman ✅ 100+ klien UMKM ✅ Berbasis di Yogyakarta
Koneksi internet terputus - pastikan perangkat Anda terhubung ke jaringan.