WordPress Anti Diretas

“WordPress anti diretas? Anti di-hack? Serius?”
Sabar sodara-sodara. Itu cuma judul click-bait, karena pada dasarnya selama perangkat terhubung ke Internet dan dapat diakses oleh publik, maka tidak ada jaminan 100% kebal terhadap peretasan. Yang dapat kita lakukan hanya memperkecil attack-surface (permukaan yang diserang).

Sebelumnya, saya mau bercerita tentang CVE-2026-109618 dan CVE-2026-109619.

Apa itu CVE?
CVE singkatan dari Common Vulnerabilities and Exposures, yaitu sistem penamaan standar internasional untuk mengidentifikasi celah keamanan siber yang diketahui publik. Sistem ini dikelola oleh MITRE Corporation dengan dukungan dari pemerintah Amerika Serikat agar setiap peneliti, vendor perangkat lunak, dan tim keamanan merujuk pada kerentanan yang sama menggunakan satu kode unik.

CVE-2026-109618 dan CVE-2026-109619 dipublikasikan pada akhir Oktober 2026 dengan skor keparahan kritis (CVSS v4.0 sebesar 9.2) dan telah ditambahkan ke dalam katalog eksploitasi aktif oleh CISA KEV.

Intinya begini:

  • CVE-2026-109618: Kerusakan memori (memory corruption) saat penanganan kehabisan memori (Out-of-Memory / OOM). Ketika batas memori terlampaui dan proses dihentikan secara tiba-tiba, pembersihan data permintaan internal dapat memperlakukan data yang belum diinisialisasi sebagai data valid, sehingga memicu Remote Code Execution (RCE).
  • CVE-2026-109619: Kerentanan manajemen memori yang menyebabkan status internal suatu permintaan tetap bertahan setelah memori pendukungnya dibebaskan (use-after-free), memungkinkan penyerang menjalankan kode berbahaya dari jarak jauh tanpa perlu autentikasi.

Singkatnya: Dua CVE di atas berdampak pada semua instalasi PHP yang melayani permintaan web, dengan risiko tertinggi pada Apache menggunakan mod_php, diikuti oleh PHP-FPM, php-cgi, FrankenPHP, dan LiteSpeed. Website berbasis CMS seperti WordPress, Drupal, dan Joomla juga terdampak.

Contoh awamnya: Dengan cara tertentu, peretas dapat login ke WordPress sebagai Admin.

Serem ya? Tapi jangan khawatir. Cukup lakukan update ke versi PHP yang dinyatakan aman dari 2 CVE ini. Cara termudah pada Debian dan Ubuntu adalah dengan mengetik apt -y upgrade, sedangkan pada keluarga RedHat dengan mengetik dnf -y update. Pastikan versi PHP telah berubah ke versi yang dinyatakan aman.

Masih khawatir? Coba ubah website dari WordPress menjadi static page, yang berarti di website itu tidak ada PHP. Yang ada hanya file HTML dan aset-asetnya (CSS, JavaScript, gambar). Website yang tanpa PHP berarti mengurangi risiko diretas melalui celah yang ditimbulkan dari PHP. Tapi tentu saja celah lain masih ada, misalkan masuk melalui SSH yang kurang diperkuat. Tapi ini di luar bahasan kali ini.

Oke. Langsung saja. Bagaimana caranya?

  1. Pasang plugin bernama Static Porter. Ketika artikel ini ditulis, Static Porter adalah plugin gratis!
  2. Setelah plugin terpasang, cukup klik: Start full crawl.
  3. Plugin akan merayapi semua alamat di WordPress, kemudian mengubah menjadi halaman statis.
  4. Hasil konversi dapat ditemui di folder wp-content/uploads/static-porter
  5. Nah, ubah www-root agar mengarah ke folder static-porter.

Dengan cara di atas, setiap pengunjung web akan disuguhi halaman web statis (html). Tidak perlu ada PHP. Bahkan tidak perlu database. Wow banget kan?

Tapi, ada tapinya nih.
Bagaimana cara kita masuk ke Dashboard WordPress kalau www-root adalah halaman statis?

Ada beberapa cara agar:
✅ Publik disuguhi folder static-porter.
✅ Admin dapat mengakses WordPress asli (yang ada PHP-nya).

Kalau saya sih: Di server dan di laptop dipasangi Tailscale. Kemudian web server memantau IP address pengunjungi. Bila IP address Tailscale, arahkan ke WordPress asli. Bila pengunjung memakai IP public, arahkan ke static-porter.

Contoh konfigurasi di Nginx adalah seperti ini:

geo $tailscale {
default 0;
100.64.0.0/10 1;
}

map $tailscale $webroot {
0 /var/www/wordpress/wp-content/uploads/static-porter;
1 /var/www/wordpress;
}

server {
listen 80;
server_name example.com;

root $webroot;
index index.html index.php;

location / {
try_files $uri $uri/ $uri.html @wordpress;
}

location @wordpress {
if ($tailscale = 0) { return 404; }
rewrite ^ /index.php last;
}

location ~ \.php$ {
if ($tailscale = 0) { return 404; }

try_files $uri =404;
include fastcgi.conf;
fastcgi_pass unix:/run/php-fpm/www.sock;
}
}

Mawan.net yang sedang anda baca ini, sekarang disajikan dalam bentuk website statis. Tanpa PHP, tanpa database.

Sekian saja tulisan saya kali ini. Semoga bermanfaat.

Web Hosting