Keamanan

Keamanan Struktur Folder WordPress: Menutup Akses ke Folder "wp-includes"

  • Waktu baca 14 menit
  • Tim Hostragons
Keamanan Struktur Folder WordPress: Menutup Akses ke Folder "wp-includes"

Keamanan Struktur Folder WordPress yang paling aman untuk menutup akses langsung ke folder "wp-includes" adalah dengan menonaktifkan eksekusi file PHP dari folder tersebut dan menonaktifkan daftar direktori, daripada menghalangi seluruh folder secara membabi buta. Ini karena wp-includes menyimpan file JavaScript, CSS, dan beberapa file statis yang diperlukan untuk menjalankan inti WordPress; menutup akses ke seluruh folder bisa merusak desain situs, editor, atau fungsi plugin. Pendekatan yang benar adalah menghalangi akses PHP secara langsung menggunakan aturan .htaccess jika Anda menggunakan Apache, atau menggunakan aturan lokasi dalam blok server jika menggunakan Nginx, kemudian memverifikasi situs dengan pengujian respon 403/404 dan tes halaman kritis.

Kesalahan yang paling umum dalam keamanan WordPress adalah hanya mengandalkan kata sandi yang kuat atau plugin keamanan. Seringkali, penyerang memindai direktori yang berisi file inti, plugin lama, izin file yang salah, dan daftar direktori yang terbuka. Folder wp-includes juga menjadi target dari pemindaian ini. Dalam panduan ini, Anda akan menemukan langkah-langkah yang dapat diterapkan di lingkungan hosting nyata untuk membatasi akses wp-includes, aturan apa yang dapat merusak situs, contoh konfigurasi untuk Apache dan Nginx, metode pengujian, dan daftar periksa pemeliharaan. Anda juga bisa mengevaluasi opsi Hosting WordPress untuk menjalankan situs WordPress Anda di infrastruktur yang lebih aman dan sertifikat SSL untuk lapisan perlindungan umum.

Apa Itu Folder wp-includes dan Mengapa Harus Dilindungi?

Folder wp-includes adalah salah satu direktori utama yang berisi pustaka inti dari WordPress. Sistem tema, komponen editor blok, REST API, pemrosesan media, kelas, fungsi, dan berbagai file JavaScript terletak dalam struktur ini. Singkatnya, wp-includes adalah salah satu ruang mesin dari WordPress; bukan area konten yang harus diakses langsung oleh pengguna.

Pengunjung biasa tidak perlu membuka alamat seperti site.com/wp-includes/. Namun, beberapa entitas statis di bawah wp-includes dapat terlihat dalam kode sumber halaman. Misalnya, file skrip default WordPress, skrip emoji, atau komponen editor dapat dimuat dari direktori ini. Oleh karena itu, saat mengambil langkah-langkah keamanan, penting untuk menentukan target dengan benar: menutup akses web langsung ke file PHP tanpa menghalangi pelaksanaan file statis.

Pemisahan ini adalah inti dari pendekatan profesional untuk Keamanan Struktur Folder WordPress. Menutup folder secara acak mungkin terlihat aman dalam jangka pendek, tetapi dapat menyebabkan masalah seperti halaman putih di situs langsung, panel admin yang rusak, editor blok yang tidak berfungsi, atau tampilan tema yang cacat. Tujuannya adalah untuk melindungi file yang diperlukan oleh WordPress sambil memperkecil permukaan serangan.

Apa Manfaat Menutup Akses wp-includes?

Menutup eksekusi PHP secara langsung di folder wp-includes tidak akan menghentikan semua serangan; namun, ini secara signifikan mengurangi permukaan serangan. Terutama pada situs yang terinfeksi malware, penyerang mencoba mengunggah file PHP berbahaya ke direktori yang dapat diakses atau memanggil file yang ada. Melarang eksekusi file PHP di bawah wp-includes menciptakan penghalang tambahan dalam skenario ini.

Tindakan ini memberikan keuntungan sebagai berikut:

  • Membatasi pemanggilan file PHP inti melalui URL secara langsung.
  • Jika daftar direktori diaktifkan, membantu mencegah tampilan konten folder.
  • Mengurangi kebocoran informasi yang tidak perlu terhadap pemindaian bot otomatis.
  • Memberikan perlindungan di tingkat server bahkan tanpa plugin keamanan.
  • Memperkuat keamanan berlapis bersama dengan WAF, SSL, versi PHP yang terkini, dan izin file.

Poin penting di sini adalah bahwa langkah ini adalah lapisan keamanan. Jika ada plugin yang tidak diperbarui, kata sandi admin yang lemah, atau akun FTP yang diretas, aturan wp-includes saja tidak akan cukup. Keamanan adalah kombinasi dari infrastruktur hosting, aplikasi, manajemen pengguna, dan pemeliharaan rutin. Untuk dasar yang aman, Anda dapat merujuk ke Hosting Web yang Aman dan untuk perlindungan tambahan dalam manajemen domain, lihat Keamanan Domain.

Kesalahan yang Sering Terjadi Saat Menutup wp-includes

Kesalahan paling umum adalah memblokir semua permintaan HTTP yang menuju ke folder wp-includes dengan kode 403. Metode ini tampak masuk akal pada pandangan pertama; namun, karena WordPress memuat beberapa entitas statis dari direktori ini, dapat menyebabkan masalah yang tidak terduga. Misalnya, editor blok mungkin tidak bisa dibuka, beberapa file JavaScript mungkin gagal dimuat, atau masalah desain kecil namun kritis mungkin terlihat di frontend.

Memindahkan Aturan ke Live Tanpa Pengujian

Meskipun kesalahan satu karakter dalam konfigurasi .htaccess atau Nginx dapat menghasilkan kesalahan 500 Internal Server Error. Khususnya untuk situs dengan lalu lintas tinggi, memindahkan aturan langsung ke live berisiko. Penting untuk membuat cadangan file tersebut terlebih dahulu, jika memungkinkan mencoba di lingkungan staging, dan kemudian berpindah ke live secara terkontrol. Jika Anda menggunakan infrastruktur Hostragons yang memiliki opsi staging atau cadangan, Cadangan Hosting Web dapat ditambahkan sebagai tautan internal yang alami.

Sepenuhnya Mengandalkan Plugin Keamanan

Plugin keamanan sangat berguna; namun, aturan di tingkat server berfungsi lebih awal. Jika permintaan diblokir oleh Apache atau Nginx sebelum mencapai PHP, konsumsi sumber daya juga berkurang. Oleh karena itu, meskipun menggunakan plugin, aturan dasar server tidak boleh diabaikan.

Daftar Periksa Sebelum Menerapkan

Melakukan persiapan singkat sebelum membatasi akses wp-includes dapat secara signifikan mengurangi risiko downtime. Daftar periksa berikut sangat dianjurkan untuk situs WordPress yang aktif:

  • Ambil cadangan dari konfigurasi .htaccess atau Nginx yang ada.
  • Perbarui inti WordPress, tema, dan plugin.
  • Pastikan versi PHP Anda adalah versi yang didukung dan aman.
  • Periksa izin file: folder biasanya harus 755, file 644.
  • Jangan biarkan izin tulis pada file kritis seperti wp-config.php dan .htaccess terbuka tanpa perlu.
  • Jika Anda menggunakan cache, CDN, atau plugin keamanan, rencanakan pembersihan cache setelah perubahan.
  • Buat daftar untuk menguji area kritis seperti panel admin, halaman utama, halaman tulisan, formulir kontak, dan halaman pembayaran.

Persiapan ini memakan waktu sekitar 10-15 menit; namun, dapat mencegah downtime yang bisa berlangsung berjam-jam akibat aturan yang salah. Pada situs korporat, lebih aman melakukan perubahan pada jam lalu lintas rendah.

Metode paling umum pada hosting berbagi yang menggunakan Apache adalah dengan file .htaccess. Menambahkan aturan yang tepat ke file .htaccess yang terletak di direktori utama WordPress dapat mencegah pemanggilan file PHP tertentu di dalam wp-includes. Sebelum memulai, unduh salinan file tersebut ke komputer atau buat cadangan melalui manajer file di panel hosting Anda.

Aturan .htaccess yang Direkomendasikan

Pendekatan di bawah ini berfokus pada menutup akses langsung ke PHP di bawah wp-includes dan mempertahankan eksekusi file statis:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^wp-includes/.*[.]php$ - [F,L]
</IfModule>

Logika dari aturan ini sederhana: jika URL dimulai dengan wp-includes dan diakhiri dengan .php, permintaan akan ditolak. Dengan begitu, file PHP di dalam wp-includes tidak dapat dipanggil dari browser. Sebaliknya, akses ke file statis seperti .js, .css, .png, .svg tetap diperbolehkan. Ini adalah keseimbangan yang lebih aman untuk frontend dan panel admin WordPress.

Menonaktifkan Daftar Direktori

Pengaturan penting lainnya adalah menonaktifkan daftar direktori. Jika daftar direktori diaktifkan di server, pengguna dapat melihat konten beberapa folder. Cukup tambahkan baris berikut ke file .htaccess utama Anda:

Options -Indexes

Baris ini mencegah tampilan daftar file di folder tanpa file indeks. Pada hosting modern, ini sering kali dinonaktifkan secara default; namun, memeriksanya adalah praktik keamanan yang baik.

Pengujian Setelah Perubahan

Setelah menambahkan aturan, lakukan pengujian berikut:

  • Buka siteadresiniz.com/wp-includes/; daftar direktori tidak boleh terlihat.
  • Cobalah untuk memanggil file PHP yang diketahui di bawah wp-includes; Anda harus menerima 403 atau 404.
  • Periksa halaman utama, tulisan blog, dan panel admin.
  • Periksa ada tidaknya kesalahan 404/403 di tab Console dan Network pada alat pengembang browser.
  • Jika Anda menggunakan plugin cache atau CDN, bersihkan cache.

Jika semua pengujian berhasil, aturan dapat dibiarkan dengan aman di lingkungan produksi. Jika Anda menerima kesalahan 500, solusi tercepat adalah menghapus baris yang ditambahkan dan mengembalikan file .htaccess cadangan.

Pada lingkungan VPS, dedicated, atau server yang dikelola yang menggunakan Nginx, file .htaccess tidak berfungsi. Aturan harus ditambahkan ke file konfigurasi situs Nginx, biasanya di dalam blok server. Proses ini memerlukan akses SSH dan hak untuk mengedit file konfigurasi. Jika Anda tidak yakin, lebih baik meminta bantuan dari tim dukungan hosting.

Aturan Lokasi Nginx yang Direkomendasikan

Aturan dasar dapat diterapkan dengan logika berikut:

location ~* ^/wp-includes/.*[.]php$ {
deny all;
}

Aturan ini memblokir permintaan yang menuju file PHP di bawah wp-includes. Setelah perubahan, penting untuk menguji konfigurasi:

nginx -t

Jika pengujian berhasil, Nginx dapat dimuat ulang:

systemctl reload nginx

Perintah reload di sini lebih terkontrol dibandingkan perintah restart; ini memperbarui konfigurasi tanpa memutuskan koneksi yang sedang berjalan sepenuhnya. Namun, untuk situs kritis, disarankan untuk melakukan perubahan saat lalu lintas rendah.

Hal-Hal yang Perlu Diperhatikan Saat Menggunakan Nginx

  • Pastikan Anda menambahkan aturan ke blok server yang benar; mungkin ada beberapa situs di server yang sama.
  • Jika Anda menggunakan CDN atau proxy terbalik, lakukan pengujian nyata setelah membersihkan cache CDN.
  • Verifikasi bahwa konfigurasi PHP-FPM hanya memproses file yang diperlukan.
  • Periksa file log: access.log dan error.log akan dengan cepat menunjukkan aturan yang salah.

Urutan lokasi yang salah di lingkungan Nginx dapat menyebabkan hasil yang tidak terduga. Oleh karena itu, pastikan aturan tidak bertentangan dengan permalink WordPress dan blok pemrosesan PHP.

Perbandingan Metode

Tabel berikut merangkum metode utama yang digunakan untuk membatasi akses wp-includes:

Perbandingan Metode
MetodeLingkungan yang SesuaiKeuntunganHal yang Harus Diperhatikan
Aturan .htaccessHosting Apache dan LiteSpeed cepat diterapkan, dapat diakses di hosting berbagiSintaks yang salah dapat menyebabkan kesalahan 500
Aturan lokasi NginxVPS, dedicated, server yang dikelolaKuat dan berkinerja tinggi di tingkat serverMembutuhkan SSH dan pengetahuan konfigurasi
Plugin KeamananPengguna dengan pengetahuan teknis terbatasMudah dikelola melalui antarmukaTidak semua aturan dapat diterapkan di tingkat server
WAF dan CDNSitus dengan lalu lintas tinggi atau yang diserangMemfilter bot, brute force, dan permintaan buruk secara diniAturan yang salah dapat memblokir pengguna yang nyata
Izin FileSemua situs WordPressDasar keamanan yang pentingTidak membatasi akses URL sendirian

Dalam praktiknya, hasil terbaik diperoleh dengan menggunakan kombinasi dari metode-metode ini. Misalnya, pada hosting Apache, aturan .htaccess, izin file yang benar, inti WordPress yang diperbarui, SSL, dan pencadangan rutin dapat bersama-sama membentuk pertahanan berlapis. Karena firewall dan isolasi di infrastruktur hosting juga penting, pemilihan Hosting Korporat dapat memberikan perbedaan yang signifikan pada situs-situs kritis.

Pengaturan Izin dan Kepemilikan File

Menutup akses wp-includes tidak akan berarti jika izin file tidak benar. Di WordPress, izin yang umumnya diterima adalah 755 untuk folder, dan 644 untuk file. Nilai-nilai ini memungkinkan server web membaca file sambil mengurangi izin tulis yang tidak perlu. Beberapa lingkungan hosting khusus mungkin memiliki konfigurasi pengguna dan grup yang berbeda; oleh karena itu, Anda juga harus memperhatikan saran dari panel Anda.

Secara khusus, izin 777 adalah risiko keamanan yang serius. Memberikan izin tulis kepada semua orang di sebuah folder memudahkan skenario pengunggahan file berbahaya. Di direktori seperti wp-content/uploads yang seharusnya dapat ditulis, eksekusi PHP juga harus dilarang. Sementara itu, wp-includes seharusnya tidak dapat ditulis oleh pengguna kecuali untuk pembaruan WordPress yang normal.

Dalam audit keamanan, nilai-nilai berikut dapat diperiksa:

  • Folder wp-includes: biasanya 755
  • File PHP di dalam wp-includes: biasanya 644
  • wp-config.php: sebaiknya 600 atau izin yang lebih ketat sesuai dengan struktur hosting
  • .htaccess: biasanya 644, tanpa izin tulis yang tidak perlu setelah pengeditan

Pengaturan ini mungkin tidak berfungsi sama di setiap server. Izin yang salah dapat menyebabkan situs tidak dapat memperbarui atau membaca file. Setelah perubahan, kesehatan WordPress dan log kesalahan harus diperiksa.

Apakah Plugin Keamanan Melakukan Proses Ini?

Plugin keamanan seperti Wordfence dan iThemes Security dapat secara otomatis merekomendasikan beberapa aturan keamanan. Plugin ini bermanfaat dalam bidang perlindungan brute force, pemantauan perubahan file, pemindaian malware, dan keamanan login. Namun, apa yang dilakukan plugin dalam menutup akses wp-includes harus selalu diperiksa.

Beberapa plugin menambahkan aturan otomatis ke file .htaccess. Beberapa hanya memberikan perlindungan di tingkat aplikasi. Perlindungan di tingkat aplikasi diaktifkan setelah permintaan mencapai WordPress, dan tidak secepat pemblokiran di tingkat server. Oleh karena itu, pendekatan profesional adalah mengevaluasi konfigurasi server bersama dengan plugin.

Jika Anda menggunakan plugin keamanan, lakukan pemeriksaan berikut:

  • Periksa apakah plugin menambahkan aturan .htaccess atau Nginx.
  • Pastikan tidak ada dua aturan berbeda yang melakukan hal yang sama yang bertabrakan.
  • Verifikasi bahwa pengaturan keamanan tidak berubah setelah pembaruan plugin.
  • Monitor penggunaan cache dan sumber daya server untuk mengukur dampak kinerja.

Sering kali, menggunakan beberapa plugin keamanan secara bersamaan bukanlah ide yang baik. Aturan firewall, login, dan rewrite yang bertabrakan dapat menurunkan kinerja atau menyebabkan pemblokiran yang salah.

Menguji Perlindungan wp-includes: Skenario Praktis

Untuk memastikan aplikasi berhasil, hanya membuka situs tidaklah cukup. Uji praktis 7 langkah di bawah ini dapat diterapkan di sebagian besar instalasi WordPress, dari situs bisnis kecil hingga proyek e-commerce:

  • 1. Buka halaman utama di tab incognito dan periksa apakah ada distorsi visual.
  • 2. Kunjungi halaman blog, halaman kategori, dan halaman hasil pencarian.
  • 3. Masuk ke panel wp-admin; buka editor blok dan perpustakaan media.
  • 4. Periksa tab Console di alat pengembang browser.
  • 5. Verifikasi bahwa file statis di bawah wp-includes tidak terhalang secara tidak perlu di tab Network.
  • 6. Cobalah untuk melakukan panggilan langsung ke file PHP di bawah wp-includes; harapkan respons 403 atau 404.
  • 7. Periksa apakah ada kesalahan baru atau berulang di log kesalahan server.

Pengujian ini memakan waktu sekitar 5 menit dan dapat dengan cepat menangkap konfigurasi yang salah. Terutama pada situs yang memiliki proses pembayaran seperti WooCommerce, halaman keranjang, pembayaran, dan akun pengguna juga harus diuji secara terpisah. Pada situs yang menghasilkan pendapatan secara langsung, bahkan sedikit penghalangan JavaScript dapat memengaruhi tingkat konversi.

Tindakan Tambahan untuk Keamanan Struktur Folder WordPress

Perlindungan wp-includes adalah langkah awal yang baik; namun, keamanan WordPress harus dipikirkan secara keseluruhan. Tindakan tambahan berikut dapat lebih mengurangi permukaan serangan:

  • Alih-alih berusaha menyembunyikan versi WordPress, jaga agar inti tetap diperbarui.
  • Hapus tema dan plugin yang tidak digunakan sepenuhnya.
  • Buat nama pengguna admin sulit ditebak.
  • Gunakan otentikasi dua faktor.
  • Batasi akses ke XML-RPC jika tidak digunakan.
  • Terapkan batasan atau otentikasi tambahan untuk wp-login.php.
  • Rencanakan pencadangan otomatis dan pengujian pemulihan secara rutin.
  • Gunakan HTTPS di seluruh situs; informasi login berisiko tanpa SSL.

SSL tidak secara langsung menutup akses wp-includes; namun, ini menyediakan keamanan dasar untuk sesi pengguna, data formulir, dan lalu lintas panel admin. Oleh karena itu, SSL selalu menjadi salah satu lapisan pertama dalam panduan keamanan WordPress. Dalam hal ini, tautan beli sertifikat SSL dan Instalasi SSL Gratis dapat diletakkan secara alami dalam konten.

Kapan Anda Harus Mendapatkan Dukungan Profesional?

Menambahkan aturan .htaccess di hosting Apache yang sederhana dapat dikelola oleh sebagian besar pengguna. Namun, jika konfigurasi Nginx khusus, jaringan multi-situs, toko WooCommerce, situs berita dengan lalu lintas tinggi, atau portal korporat terlibat, mendapatkan dukungan profesional mungkin lebih tepat. Karena aturan keamanan tidak hanya harus benar secara teknis, tetapi juga harus diterapkan dengan aman untuk kelangsungan bisnis.

Dukungan ahli disarankan dalam situasi berikut:

  • Jika Anda menyimpan beberapa situs WordPress di server.
  • Jika Nginx, Varnish, CDN, dan WAF digunakan bersama.
  • Jika jumlah kesalahan 403, 404, atau 500 meningkat setelah perubahan terakhir.
  • Jika situs sebelumnya mengalami infeksi malware.
  • Jika Anda menjalankan sistem yang memproses data pembayaran, keanggotaan, atau informasi pribadi.

Infrastruktur hosting yang aman, isolasi yang tepat, pencadangan rutin, dan dukungan ahli adalah bagian-bagian yang tidak terlihat namun krusial dari keamanan WordPress. Saat memilih infrastruktur, penting untuk tidak hanya melihat ruang disk; tetapi juga pencadangan, firewall, dukungan versi PHP, manajemen SSL, dan kualitas dukungan teknis. Dalam konteks ini, konten Paket Hosting Hostragons dan Pemindahan Situs WordPress dapat bermanfaat bagi pembaca.

Kesimpulan

Dalam konteks Keamanan Struktur Folder WordPress, cara yang benar untuk menutup akses ke folder wp-includes adalah dengan menutup akses web langsung ke file PHP di dalamnya dan menonaktifkan daftar direktori, bukan dengan menghalangi seluruh folder. Proses ini dapat diterapkan dengan cepat menggunakan .htaccess untuk Apache dan aturan lokasi untuk Nginx. Namun, sebelum setiap perubahan, penting untuk melakukan cadangan, dan setelahnya melakukan pengujian pada panel admin dan antarmuka depan.

Secara ringkas: jangan merusak file statis, batasi akses PHP, nonaktifkan daftar direktori, periksa izin file, dan lakukan pembaruan secara rutin. Untuk infrastruktur WordPress yang lebih aman dan mudah dikelola, Anda dapat menjelajahi solusi hosting, domain, dan SSL dari Hostragons; dan mendapatkan dukungan untuk konfigurasi yang sesuai dengan kebutuhan Anda.

FAQ

Apakah aman untuk menutup seluruh folder wp-includes?

Umumnya tidak disarankan. Di dalam wp-includes, mungkin ada file JavaScript, CSS, dan file statis yang diperlukan oleh WordPress. Menutup akses sepenuhnya dapat merusak tampilan situs atau panel admin. Pendekatan yang lebih aman adalah menutup akses langsung ke file PHP di folder ini.

Apa yang harus saya lakukan jika saya mendapatkan kesalahan 500 setelah menambahkan aturan .htaccess?

Pertama, hapus aturan terakhir yang Anda tambahkan atau pulihkan file .htaccess dari cadangan. Kemudian periksa aturan untuk kesalahan sintaks. Jika kesalahan berlanjut, periksa log kesalahan hosting atau minta bantuan dukungan teknis.

Apakah .htaccess berfungsi di server Nginx?

Tidak. .htaccess digunakan di lingkungan Apache dan LiteSpeed. Pembatasan serupa di server Nginx dilakukan dengan aturan lokasi di dalam blok server, dan harus diuji konfigurasi setelah perubahan dengan nginx -t.

Apakah proses ini membuat situs WordPress saya sepenuhnya aman?

Tidak. Menutup akses PHP wp-includes adalah lapisan keamanan penting tetapi tidak cukup sendiri. Pembaruan, kata sandi yang kuat, otentikasi dua faktor, SSL, pencadangan, firewall, dan izin file yang benar harus diterapkan bersama-sama.

Jika saya menggunakan plugin keamanan, apakah saya juga harus menambahkan aturan wp-includes?

Itu tergantung pada aturan apa yang diterapkan oleh plugin. Beberapa plugin menambahkan aturan .htaccess, sementara yang lain hanya memberikan perlindungan di tingkat aplikasi. Mengurangi akses PHP di tingkat server tanpa konflik biasanya merupakan solusi yang lebih kuat.

Bagikan artikel ini:

Tim Hostragons

Panduan terkini dari tim ahli kami tentang hosting, server, dan nama domain. Mari kita temukan solusi yang tepat untuk proyek Anda bersama-sama.

Hubungi Kami