Cara Melindungi Website dari Serangan Hacker Tanpa Anggaran
Website yang menerima pesanan, menyimpan data pelanggan, atau memproses pembayaran selalu punya nilai bagi penyerang. Namun jalur masuk yang paling sering dipakai biasanya bukan bug eksotis. Yang berulang justru hal mendasar: komponen usang, kredensial lemah, folder unggahan yang bisa mengeksekusi kode, dan tidak ada salinan data yang benar-benar bisa dipulihkan.
Artinya, cara melindungi website dari serangan hacker tidak harus dimulai dari belanja alat mahal. Banyak langkah paling berdampak justru gratis atau nyaris gratis. Yang dibutuhkan waktu, disiplin, dan urutan pengerjaan yang masuk akal. Untuk pemilik bisnis dengan anggaran terbatas, urutan itu menentukan: kerjakan dulu yang murah dan menutup risiko terbesar.
Satu catatan sebelum mulai. Tidak ada konfigurasi yang membuat website kebal. Tujuan praktisnya adalah menaikkan biaya serangan dan memperkecil jendela waktu saat ada yang terlewat.
Urutan 10 langkah menurut rasio manfaat dan biaya
Urutan ini disusun dari yang paling murah dan paling cepat berdampak. Nomor boleh dikerjakan bertahap, tapi jangan melompati langkah 1 sampai 4.
- Patch dan pembaruan rutin — gratis, dampak besar.
- Kunci akses admin (ganti username default, batasi jalur login) — gratis.
- Aktifkan 2FA untuk semua akun admin — gratis dengan aplikasi authenticator.
- Backup terjadwal plus uji restore — sebagian gratis, sebagian berbiaya.
- Header keamanan HTTP — gratis, butuh sedikit pengaturan.
- Pisahkan hak akses database — gratis.
- Batasi jenis dan lokasi unggahan — gratis.
- Pemantauan log dan notifikasi anomali — gratis sampai berbiaya sedang.
- Email anti-spoofing (SPF, DKIM, DMARC) — gratis.
- Uji berkala — berbiaya, tapi paling masuk akal dilakukan setelah 1–9 beres.
1. Patch: pekerjaan membosankan yang menutup banyak jalan
Patch yang tertunda adalah celah yang menunggu. Penyerang tidak perlu mencari teknik baru kalau versi CMS, plugin, atau library di website Anda masih versi lama yang celahnya sudah dipublikasikan. Perbarui minimal:
- Inti CMS dan semua plugin/tema, termasuk yang nonaktif — hapus yang tidak dipakai.
- Dependensi aplikasi (composer.json, package.json) dan kunci versinya.
- Image container dan paket sistem operasi di server.
Aktifkan pembaruan otomatis untuk patch keamanan minor. Untuk lonjakan versi mayor, uji dulu di lingkungan staging dan pastikan backup terbaru sudah ada, karena patch kadang merusak tampilan atau fungsi.
2. Kunci akses admin dan wajibkan 2FA
Panel admin adalah pintu utama. Ganti username default seperti admin atau administrator, lalu batasi jalur login: allowlist IP kantor, basic auth berlapis di depan halaman admin, atau pembatasan path. Tambahkan pembatasan percobaan login agar tebak-password tidak bisa jalan terus.
Setelah itu aktifkan 2FA berbasis TOTP. Ini menutup sebagian besar kasus kredensial bocor, karena password yang benar saja tidak cukup. Pisahkan juga akun: satu akun admin untuk konfigurasi, akun lain untuk pekerjaan harian, dan akun berbeda untuk tiap staf agar jejak aktivitas bisa dilacak. Pastikan sesi lama otomatis tidak valid saat password diganti.
3. Backup yang diuji, bukan backup yang diasumsikan
Backup bukan pengganti pencegahan, tapi penentu seberapa cepat bisnis pulih. Aturan praktisnya: simpan tiga salinan, di dua jenis media, dengan satu salinan di lokasi terpisah dan tidak bisa ditimpa dari server produksi. Salinan yang bisa dihapus penyerang bukan backup.
Yang sering terlewat adalah uji restore. Backup yang belum pernah dipulihkan statusnya asumsi. Jadwalkan uji restore berkala ke lingkungan terpisah, catat durasinya, dan enkripsi berkas backup. Frekuensi backup ikuti seberapa sering data berubah; toko online biasanya butuh harian atau lebih rapat untuk data transaksi.
4. Header keamanan, hak akses database, dan unggahan
Header keamanan murah dan cepat dipasang di server atau CDN. Minimal pertimbangkan Content-Security-Policy secara bertahap, Strict-Transport-Security, X-Content-Type-Options: nosniff, Referrer-Policy, dan pengaturan frame. Terapkan satu per satu sambil memantau log agar tidak mematahkan fitur yang dipakai.
Di sisi database, jangan pakai akun root untuk aplikasi. Buat user khusus dengan hak minimum, batasi koneksi ke localhost, dan jangan mengekspos port database ke internet. Simpan kredensial di variabel lingkungan, bukan di repositori kode.
Untuk unggahan, batasi tipe berkas dan ukuran, simpan di luar webroot atau object storage, dan pastikan folder unggahan tidak mengeksekusi skrip. Satu file berbahaya yang bisa dijalankan dari folder unggahan sering cukup untuk mengambil alih seluruh situs.
5. Pantau log, tutup celah email, lalu uji
Log akses, log error, dan log login adalah alarm termurah yang Anda punya. Kirim ke penyimpanan terpusat, tetapkan masa simpan, dan buat notifikasi untuk pola sederhana: lonjakan percobaan login gagal, permintaan ke jalur admin dari IP asing, atau perubahan berkas konfigurasi. Tanpa log, investigasi setelah insiden hampir mustahil.
Lengkapi juga DNS email dengan SPF, DKIM, dan DMARC. Tanpa itu, domain Anda mudah dipalsukan untuk mengirim email penipuan ke pelanggan — masalah reputasi yang tidak terlihat di server website.
Uji berkala membantu menemukan yang terlewat. AISG menjalankan sensor pemindaian secara lokal di mesin pengguna, dan temuannya adalah indikasi yang perlu divalidasi manusia, bukan bukti bahwa celah sudah dieksploitasi. Untuk gambaran awal, tersedia pemindaian URL gratis tanpa akun di /#free-scan.
Setelah langkah 1–9 beres, barulah uji menyeluruh masuk anggaran: pemindaian otomatis rutin, tinjauan konfigurasi, dan bila perlu pengujian penetrasi. Untuk memahami komponen biayanya, artikel biaya pentest aplikasi: apa yang menentukan harga bisa jadi bahan pertimbangan.
Kesimpulan
Melindungi website dari serangan hacker lebih banyak soal kerapian operasional daripada alat mahal. Patch, kunci akses admin, 2FA, dan backup yang diuji menutup sebagian besar jalur masuk yang umum, dan hampir semuanya bisa dikerjakan tanpa anggaran besar.
Mulai dari langkah 1–4 minggu ini, ukur apa yang sudah beres, lalu naik ke header keamanan, database, dan pemantauan log. Anggap setiap hasil pemindaian sebagai indikasi yang perlu ditindaklanjuti manusia, bukan vonis. Konsistensi bulanan jauh lebih berharga daripada proyek keamanan sekali jalan.