WordPress merupakan salah satu CMS yang banyak digunakan di beberapa website perusahaan. Banyaknya populasi pengguna wordpress ini mengundang banyak tangan jahil yang tentu saja kehadirannya sangat tidak kita inginkan.
Dalam tutorial wordpress kali ini, Tutorials.id akan memberikan beberapa tips sederhana namun terbukti ampuh untuk menangkal serangan hacker. Karena banyaknya cara dalam proteksi wordpress, maka kali ini Tutorials.id membatasi scope pembicaran kita hanya di penggunaan file .htaccess untuk memproteksi web dari serangan hacker.
1. Hanya izinkan eksekusi index.php, wp-login.php dan robots.txt di direktory utama
Banyak diantara penyebab perentasan website adalah karena perentas berhasil mengunggah beberapa file php ke direktory utama dan diperbolehkan untuk mengeksekusinya. Untuk mengurangi celah ini, maka kita harus mendisable (deny) semua file php dan file txt di direktory utama kecuali index.php, wp-login.php dan robots.txt. untuk keperluan ini, sisipkan baris berikut di file .htaccess anda:
<FilesMatch "\.(txt|php)$"> Order Allow,Deny Deny from all </FilesMatch> <FilesMatch "(robots\.txt|index\.php|wp-login\.php)$"> Order Allow,Deny Allow from all </FilesMatch>
File .txt walaupun bukan file script, namun sering kali dimanfaatkan oleh hacker untuk menanam symlink yang berfungsi membaca file php, sehingga file jenis .txt juga perlu kita disable.
sekarang silahkan coba akses https://wordpress.tutorials.id/license.txt
hasilnya adalah forbiden atau not found. begitu pula file lainnya selain 3 file yang disebutkan di atas.
hasilnya adalah forbiden atau not found. begitu pula file lainnya selain 3 file yang disebutkan di atas.
Jika anda pengguna VPS dengan alamat IP statis misal IP 12.34.56.78 , Anda bisa memberikan pengecualian terhadap IP tersebut sehingga hanya Anda yang memiliki akses full ke file PHP di semua folder. pengguna lain hanya boleh mengakses 3 file itu saja. Caranya yaitu dengan mengubah sedikit .htacess di atas menjadi:
<FilesMatch "\.(txt|php)$"> Order Allow,Deny Deny from all Allow from 12.34.56.78 </FilesMatch> <FilesMatch "(robots\.txt|index\.php|wp-login\.php)$"> Order Allow,Deny Allow from all </FilesMatch>
kemudian jika anda ingin mengakses halaman dashboard, koneksikan terlebih dulu PC Anda ke VPS dengan menggunakan VPN atau port forwarding. Misal jika menggunakn port forwarding cukup di terminal linux Anda ketikkan:
ssh -C -D 1080 root@12.34.56.78
Setelah itu set proxy browser ke localhost dengan port 1080. dan sekarang anda sudah mempunyai akses full ke web Anda.
Untuk pengguna non VPS, anda perlu menambahkan .htaccess lain di folder wp-admin (lihat point 2).
2. Izinkan eksekusi File php di folder wp-admin
Sehubungan dengan penambahan .htaccess di direktory utama yang melarang eksekusi semua file php, maka untuk pengguna shared hosting perlu menambahkan file .htaccess di folder wp-admin agar tetap bisa login ke dashboard.
Tambahkan file .htaccess di folder wp-admin, kemudian isi dengan:
<FilesMatch "\.php"> Order Allow,Deny Allow from all </FilesMatch>
3. Banned eksekusi semua File php di folder wp-includes dan wp-content
kemudian di folder wp-includes, tambahkan juga file .htaccess dan isi dengan:
<FilesMatch "\.php$"> Order Allow,Deny Allow from 127.0.0.1 Deny from all </FilesMatch>
untuk mencobanya, silahkan test dengan mengakses file index.php di folder plugins. Contoh: https://wordpress.tutorials.id/wp-content/plugins/index.php atau cukup https://wordpress.tutorials.id/wp-content/plugins dan hasilnya harus error 403 Forbiden seperti gambar berikut:
Selamat mencoba
COMMENTS