Salah satu cara untuk mencegah agar orang tidak bisa melakukan login ke server kita adalah dengan melakukan disable POST request. Apa itu maksudnya? Maksudnya dengan cara ini orang tidak akan bisa mengirimkan data ke server kita, sehingga aman dari login yang tidak bertanggung jawab.
Caranya mudah saja sebenarnya, cukup dengan beberapa langkah.
Pertama, buat subdomain dengan nama tertentu sebagai subdomain kita, yang mengarah ke root HTML (public_html) kita. Misalkan: secret.ahlikompie.com.
Kedua, setting .htaccess yang memblokir login dari domain utama, sekaligus block bot dari subdomain:
# Block POST Request Dari Domain Utama
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{HTTP_HOST} ^ahlikompie.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.ahlikompie.com$
RewriteRule ^ / [F]
# send all POST requests to 403 forbidden
# request is for secret.ahlikompie.com
RewriteCond %{HTTP_HOST} ^secret.ahlikompie.com$ [NC]
# user-agent is a search engine bot
RewriteCond %{HTTP_USER_AGENT} (googlebot|yahoo|slurp|msnbot|bingbot) [NC]
# return forbidden
RewriteRule ^ - [L,F]
Ketiga, dari wp-config.php pastikan yang akses subdomain itu diberi akses login sekaligus tampilkan noindex dan nofollow untuk robot
// Enable Development Mode
if($_SERVER["HTTP_HOST"] == "secret.ahlikompie.com"){
// URL kerja untuk admin
define( 'WP_SITEURL', 'https://secret.ahlikompie.com' );
// URL public untuk visitor
define( 'WP_HOME', 'https://secret.ahlikompie.com' );
}
Keempat, lakukan cron tiap jam menggunakan Interconnectit Search Replace DB agar kalau ada isi content WP ke arah subdomain tersebut akan diupdate ke domain utama yang benar, misalnya:
php ~/public_html/scripts/Search-Replace-DB-4.1.2/srdb.cli.php -h localhost -u username -p password -n dbname -s secret.ahlikompie.com -r ahlikompie.com
Nah, karena tidak bisa login nanti kita akan bingung, bagaimana cara untuk mengelola server kita. Iya kan? Jawabnya, silakan login dari subdomain dev.example.com, kalau di WordPress. Detail caranya ada pada posting sebelumnya tentang membangun website dengan BunnyCDN.
Referensi kode: StackOverflow, ServerFault
Leave a Reply