Hai semua! Pernah gak sih kalian ngerasa web WordPress tiba-tiba lemot padahal trafik lagi biasa aja? Bisa jadi itu karena ada bot yang lagi iseng nge-crawl endpoint REST API kalian. Nah, daripada web jadi beban karena harus proses PHP terus, mending kita blokir aja aksesnya langsung dari level server pake Nginx.

Kenapa Harus Blokir dari Nginx
Ngeblokir akses dari sisi server itu jauh lebih oke daripada pake plugin. Server bakal langsung nolak request yang gak dikenal sebelum script WordPress sempet jalan. Ini efektif banget buat hemat resource, apalagi kalau kamu jalanin web server android wordpress cloudflare yang butuh optimasi ekstra biar tetep stabil.
Setting Map Nginx buat Filter Akses
Cara paling pinter buat ngatur ini adalah pake fitur map di Nginx. Kita bakal bikin sistem yang bisa bedain mana user yang emang lagi login dan mana yang cuma tamu gak diundang. Jadi, REST API kamu cuma bakal kebuka pas kamu lagi butuh aja di dashboard.
Berikut ini susunan kodenya yang bisa kamu masukin ke konfigurasi server kamu
map $http_cookie $cookies {
"~*wordpress_logged_in=[a-zA-Z0-9%]{20,}" 1;
"~*comment_author_" 1;
"~*wordpress_secure_" 1;
default 0;
}
map $request_uri $rest_api {
"~*^/wp-json" 2;
default 0;
}
map "$rest_api:$cookies" $access_cookie {
"2:0" 1;
default 0;
}
Aktifkan Blokir di Blok Server
Setelah kamu pasang aturan map di atas, sekarang tinggal kasih perintah buat nolak aksesnya. Kamu cukup tambahin logika simpel di dalam blok server biar siapa pun yang akses /wp-json tanpa cookie login bakal dapet error 403 atau forbidden.
Ini kode tambahannya
if ($access_cookie) {
return 403;
}
Selalu Cek Ulang Konfigurasi
Abis edit file konfigurasi, jangan langsung restart ya. Pastiin dulu gak ada yang typo dengan jalanin perintah test di terminal. Kalau udah aman, baru deh kamu reload Nginx-nya biar perubahan tadi langsung aktif dan web kamu makin aman dari serangan bot.
Gimana mudah kan? Oh iya kalo kamu bingung atau error kamu bisa tanya aja di di bawah babay.







Ganti cookie default wordpress gimana? Kalo standar risk banget
define('LOGGED_IN_COOKIE', 'nama_cookie_baru');Masukin itu di
wp-config.phpJangan lupa, kamu ganti juga nama cookienya di cloudflare atau di settingan yang berhubungan dengan cookie wordpress biar gak error.
Blokir akses file php di tema atau upload caranya bagaimana supaya bisa jadi satu sama login itu?
map $request_uri $name_url {"~*°/(wp-includes|wp-content)(/.*)\.php(\?.*)?$" 1;
default 0;
}
if ($name_url) {return 403;
}
Lalu cara tesnya gimana untuk memastikan itu work?
Tes apa?
Kalo maksud kamu tes pake curl kaya gini
curl -I https://nama.com/wp-content/test.php<- Blokircurl -I https://nama.com/wp-includes/test.php?tes=2<- Blokir502 Bad Gateway, fix help
Blokir ginian di shared hosting tanpa plugin bisa enggak?
Bisa lewat .htaccess, kalo males ribet pake plugin keamanan
Saat login kena cache cloudflare, cara biar tanpa cache saat login di cloudflare gimana?
Buat rules cache baru di cloudflare create rules kaya gini
Field
CookieOperator
containsValue
wordpress_logged_inBuat komentar cookie dsb sama kaya gitu.
Status DYNAMIC
Lu main mole ya?
Iya😊
Untuk blokir kueri string sama caranya?
Kalo di apache gimana?
Make .htaccess bang
Ganti cookie bawaan wordpress gimana?
define('USER_COOKIE', 'cookie_baru');define('LOGGED_IN_COOKIE', 'cookie_baru');define('AUTH_COOKIE', 'cookie_baru');define('SECURE_AUTH_COOKIE', 'cookie_baru');Salin itu ke wp-config.php
Kalo kamu pake cloudflare, jangan lupa masukin cookie baru itu supaya gak di cache cloudflare.
Sudah login, di health status WP-JSON kenapa terblokir 403?
Tapi buat post baru atau edit bisa gak? Contoh 403 nya kaya gimana?