10 Langkah Dasar Mengamankan Website dari Peretasan
10 langkah dasar mengamankan website dari peretasan: update rutin, password kuat dan 2FA, backup 3-2-1, WAF, izin file, HTTPS, dan pemantauan login.
Daftar isi
- 1. Perbarui WordPress, plugin, tema, dan PHP
- 2. Gunakan kata sandi kuat dan autentikasi dua faktor
- 3. Batasi akun administrator
- 4. Backup dengan aturan 3-2-1
- 5. Pasang plugin keamanan atau WAF
- 6. Atur izin file dengan benar
- 7. Hapus plugin dan tema yang tidak dipakai
- 8. Aktifkan HTTPS di seluruh situs
- 9. Pantau perubahan file dan aktivitas login
- 10. Pisahkan akun hosting untuk setiap website
- Daftar periksa bulanan
- Sumber dan referensi
Sebagian besar website kecil diretas lewat pemindaian otomatis: bot menjelajahi internet untuk mencari plugin usang, kata sandi lemah, dan file dengan izin yang terlalu longgar. Begitu celah ditemukan, website bisa disusupi halaman spam, dipakai menyebarkan malware, atau dihapus isinya. Sepuluh langkah di bawah ini menutup celah yang paling sering dimanfaatkan, dan sebagian besar bisa Anda kerjakan sendiri dalam satu sore. Contoh yang dipakai berbasis WordPress, tetapi prinsipnya berlaku untuk CMS lain.
1. Perbarui WordPress, plugin, tema, dan PHP
Banyak peretasan memanfaatkan celah yang sebenarnya sudah ditambal pengembang, tetapi belum diperbarui oleh pemilik website. WordPress secara bawaan memasang pembaruan minor otomatis, dan Anda bisa mengaktifkan pembaruan otomatis untuk plugin yang tepercaya. Untuk pembaruan besar, buat backup dulu dan uji di staging jika memungkinkan. Jangan lupakan versi PHP di server: versi yang sudah melewati masa dukungan tidak lagi menerima perbaikan keamanan.
2. Gunakan kata sandi kuat dan autentikasi dua faktor
Buat kata sandi yang panjang dan berbeda untuk setiap akun: admin WordPress, cPanel, FTP atau SFTP, database, email, dan akun registrar domain. Password manager memudahkan Anda menyimpan semuanya tanpa harus menghafal. Tambahkan autentikasi dua faktor (2FA) dengan aplikasi authenticator, minimal untuk akun administrator dan panel hosting. Dengan 2FA, kata sandi yang bocor saja tidak cukup untuk masuk.
3. Batasi akun administrator
Setiap akun admin adalah pintu masuk dengan kunci penuh. Berikan peran sesuai kebutuhan: penulis konten cukup diberi peran Penulis atau Penyunting. Hapus akun milik mantan karyawan, freelancer yang proyeknya sudah selesai, dan akun uji coba. Hindari nama pengguna yang mudah ditebak seperti "admin", dan periksa daftar pengguna secara berkala untuk memastikan tidak ada akun asing.
| Peran WordPress | Kemampuan utama | Cocok untuk |
|---|---|---|
| Administrator | Mengatur seluruh situs, termasuk plugin, tema, dan pengguna | Pemilik atau pengelola teknis |
| Editor (Penyunting) | Menerbitkan dan menyunting semua konten | Pengelola konten |
| Author (Penulis) | Menerbitkan dan menyunting tulisan sendiri | Penulis tetap |
| Contributor (Kontributor) | Menulis, tetapi tidak bisa menerbitkan | Penulis tamu |
| Subscriber (Pelanggan) | Hanya mengelola profil sendiri | Anggota atau pelanggan terdaftar |
4. Backup dengan aturan 3-2-1
Backup adalah jaring pengaman terakhir saat langkah lain gagal. Aturan 3-2-1 artinya: simpan tiga salinan data, di dua jenis media atau lokasi penyimpanan yang berbeda, dengan satu salinan berada di luar server (offsite). Backup yang hanya tersimpan di akun hosting yang sama bisa ikut hilang atau ikut terinfeksi saat server bermasalah.
- Backup file dan database sekaligus, karena keduanya dibutuhkan untuk pemulihan.
- Jadwalkan secara otomatis: harian untuk website yang sering berubah, mingguan untuk website yang jarang diperbarui.
- Simpan beberapa versi lama, karena infeksi sering baru disadari berminggu-minggu kemudian.
- Uji pemulihan sesekali. Backup yang tidak pernah dicoba dipulihkan belum tentu bisa dipakai.
5. Pasang plugin keamanan atau WAF
Web Application Firewall (WAF) menyaring permintaan berbahaya sebelum sampai ke aplikasi, misalnya percobaan login massal atau pola serangan yang sudah dikenal. WAF bisa berjalan di level server (disediakan sebagian hosting), di layanan CDN, atau sebagai plugin keamanan WordPress. Pilih satu solusi utama yang aktif dikembangkan, aktifkan pembatasan percobaan login, dan hindari memasang beberapa plugin keamanan dengan fungsi yang tumpang tindih karena bisa saling bentrok.
6. Atur izin file dengan benar
Izin file yang terlalu longgar memungkinkan skrip jahat menulis atau mengubah file di website Anda. Berikut pedoman umum untuk WordPress di shared hosting:
| File atau folder | Izin yang umum dipakai | Catatan |
|---|---|---|
| Folder | 755 | Pemilik bisa menulis, pengguna lain hanya membaca |
| File | 644 | Berlaku untuk sebagian besar file PHP, CSS, dan gambar |
| wp-config.php | 440 atau 400 | Berisi kredensial database, batasi seketat mungkin |
| File atau folder apa pun | Hindari 777 | Memberi izin menulis kepada semua pengguna server |
Konfigurasi server berbeda di setiap penyedia, jadi cek panduan hosting Anda jika website error setelah izin diubah. Tambahkan juga baris define( 'DISALLOW_FILE_EDIT', true ); di wp-config.php untuk menonaktifkan editor tema dan plugin di dasbor. Dengan begitu, penyerang yang berhasil masuk ke dasbor tidak bisa langsung menyunting kode dari sana.
7. Hapus plugin dan tema yang tidak dipakai
Plugin yang dinonaktifkan tetap menyimpan file di server, dan file itu masih bisa diakses serta dieksploitasi jika mengandung celah. Hapus plugin dan tema yang tidak digunakan, lalu sisakan satu tema bawaan sebagai cadangan. Jangan pernah memasang plugin atau tema bajakan (sering disebut versi "nulled"), karena file seperti ini kerap sudah disisipi kode berbahaya sejak awal.
8. Aktifkan HTTPS di seluruh situs
HTTPS mengenkripsi data antara browser dan server, termasuk kata sandi saat login. Sertifikat SSL gratis dari Let's Encrypt sudah tersedia di banyak panel hosting. Ikuti panduan memasang SSL gratis Let's Encrypt, lalu pastikan semua halaman dialihkan ke versi https:// dan tidak ada konten campuran, yaitu gambar atau skrip yang masih dimuat lewat http://.
9. Pantau perubahan file dan aktivitas login
Peretasan yang terdeteksi lebih awal jauh lebih mudah dibersihkan. Aktifkan pemantauan integritas file yang memberi tahu Anda jika file inti berubah atau file baru muncul di tempat yang tidak wajar. Catat aktivitas login dan perhatikan percobaan masuk dari lokasi asing atau di jam yang tidak biasa. Daftarkan website ke Google Search Console agar Anda menerima email jika Google mendeteksi masalah keamanan; caranya ada di panduan Google Search Console untuk pemula. Sesekali, ketik site:domainanda.com di Google untuk melihat apakah ada halaman asing yang ikut terindeks.
10. Pisahkan akun hosting untuk setiap website
Menaruh banyak website dalam satu akun hosting memang praktis, tetapi jika satu website diretas, penyerang biasanya bisa menjangkau semua file di akun tersebut. Website lain yang sebenarnya aman ikut terinfeksi, dan pembersihannya menjadi jauh lebih rumit karena Anda harus memeriksa semuanya. Untuk website penting, gunakan akun hosting terpisah atau setidaknya pengguna sistem yang terisolasi. Jika website sudah terlanjur disusupi, ikuti langkah pemulihan di artikel membersihkan website dari spam judi online.
Daftar periksa bulanan
- Pasang pembaruan WordPress, plugin, dan tema yang tertunda.
- Tinjau daftar pengguna dan hapus akun yang tidak lagi diperlukan.
- Pastikan backup terbaru tersedia di lokasi offsite dan bisa diunduh.
- Periksa laporan keamanan di Search Console dan hasil pencarian
site:. - Cek tanggal kedaluwarsa sertifikat SSL dan domain.
Rutinitas sederhana seperti ini menutup sebagian besar celah yang dicari bot otomatis. Jika suatu saat insiden tetap terjadi, backup yang rapi dan catatan akses yang jelas membuat pemulihan jauh lebih cepat dan tidak bergantung pada keberuntungan.
Sumber dan referensi
- OWASP Top Ten: daftar risiko keamanan aplikasi web yang paling umum, disusun oleh komunitas OWASP.
- Hardening WordPress: panduan resmi WordPress untuk memperkuat keamanan instalasi, termasuk izin file.
- Let's Encrypt: otoritas sertifikat gratis dan terbuka untuk mengaktifkan HTTPS.