Nonaktifkan sepenuhnya fungsi pencarian bawaan di WordPress untuk mencegah program jahat memindai dan merusak basis data.

Nonaktifkan sepenuhnya WordPress Antarmuka pengguna (front-end) memiliki fungsi pencarian bawaan untuk mencegah basis data kewalahan oleh proses pemindaian.

Database mengalami kerusakan bukan karena situs web Anda memiliki terlalu banyak konten, tetapi karena Anda masih menggunakan fitur pencarian bawaan WordPress yang sangat tidak efisien.

Banyak pemilik situs web mengabaikan satu fakta: bagian depan (front-end)... ?s= Parameter pencarian adalah favorit para peretas dan pemindai.

Jika seseorang terus-menerus membuat permintaan ke antarmuka pencarian, basis data Anda akan dipaksa untuk menjalankan ribuan kueri yang tidak berarti.

Hasilnya? Penggunaan CPU melonjak, penggunaan memori meledak, dan situs web mengalami gangguan.

Ini bukan berlebihan, melainkan pengalaman nyata dan menyakitkan yang dialami oleh banyak sekali situs.

Mengapa menonaktifkan pencarian bawaan WordPress?

Fungsi pencarian bawaan WordPress pada dasarnya adalah kueri LIKE teks lengkap di dalam basis data.

Kueri ini sangat tidak efisien, terutama ketika jumlah artikel melebihi 1; satu pencarian saja dapat memakan waktu lebih dari 0.5 detik.

Jika seseorang menggunakan web crawler atau skrip serangan untuk mengirim puluhan permintaan pencarian per detik, basis data Anda akan langsung kewalahan.

Menurut dokumentasi resmi WordPress, pencarian bawaan tidak memiliki mekanisme perlindungan dan sepenuhnya terbuka untuk antarmuka pengguna. Ini berarti penyerang dapat mengeksploitasi titik masuk ini tanpa perlu masuk ke sistem.

Nonaktifkan sepenuhnya fungsi pencarian bawaan di WordPress untuk mencegah program jahat memindai dan merusak basis data.

Solusi alternatif: Terhubung ke mesin pencari yang lebih cerdas

Banyak situs web profesional tidak lagi mengandalkan fitur pencarian bawaan WordPress.

Misalnya, akses Pencarian Pemrograman Google atau Algolia Layanan pencarian pihak ketiga seperti ini tidak hanya cepat, tetapi juga memberikan hasil yang lebih akurat.

Yang lebih penting lagi, layanan-layanan ini tidak akan melumpuhkan basis data Anda karena semua kueri dilakukan secara eksternal.

Jadi, jika situs web AndaPenentuan posisiJika itu adalah situs alat bantu, situs blog, atau bahkan situs yang sudah mengandalkan pencarian eksternal, tidak ada alasan untuk terus mempertahankan fungsi pencarian bawaan WordPress.

Nonaktifkan sepenuhnya implementasi kode pencarian front-end WordPress.

Cara paling langsung adalah dengan fokus pada tema. functions.php Tambahkan kode berikut ke dalam file:

// 禁用 WordPress 前台搜索功能,防止被扫描拖垮数据库
function disable_wp_search( $query, $error = true ) {
    if ( is_search() && !is_admin() ) {
        $query->is_search = false;
        $query->query_vars['s'] = false;
        $query->query['s'] = false;
        if ( $error == true ) {
            // 直接返回 404 页面,不走任何数据库查询
            $query->set_404();
            status_header( 404 );
            nocache_headers();
        }
    }
}
add_action( 'parse_query', 'disable_wp_search' );
add_filter( 'get_search_form', '__return_empty_string' );

Logika kode ini sangat sederhana:

  • Begitu permintaan pencarian latar depan terdeteksi, kueri basis data akan langsung diblokir.
  • Kembali ke halaman 404 sepenuhnya memblokir titik masuk.
  • Pada saat yang sama, formulir pencarian dihapus untuk mencegah tindakan pengguna yang tidak disengaja.

Keunggulan metode ini adalah bahwa meskipun penyerang membuat banyak permintaan... ?s=xxxIni tidak akan memicu kueri basis data apa pun.

Implementasi yang lebih elegan: menggunakan Fluent Snippets

Jika Anda tidak ingin memodifikasi file tema secara langsung, Anda dapat menggunakan... Cuplikan Fluent pengaya.

Plugin ini memungkinkan Anda menambahkan cuplikan kode langsung di latar belakang, dan melihat efek serta modifikasinya. functions.php Sama, tapi lebih aman.

Setelah diaktifkan, Anda dapat dengan mudah mengelola semua kode kustom Anda tanpa perlu khawatir pembaruan tema akan menimpanya.

Hasil pengujian aktual: Tekanan basis data menurun tajam.

Dalam konfigurasi CPU 2 inti + RAM 4GB Pada VPS, ketika pencarian bawaan melakukan 50 permintaan per detik, pemanfaatan CPU basis data melonjak hingga 95%.

Setelah menonaktifkan pencarian, permintaan yang sama langsung mengembalikan kesalahan 404, dan beban basis data hampir nol.

Inilah mengapa banyak pakar keamanan sangat menyarankan untuk segera menonaktifkan pencarian bawaan WordPress jika Anda tidak membutuhkannya.

Para peneliti keamanan secara eksplisit menyatakan di blog resmi Sucuri:

"Fitur pencarian bawaan WordPress adalah salah satu titik masuk termudah untuk dieksploitasi; penyerang dapat membuat serangan penolakan layanan (denial-of-service) dengan melakukan permintaan pencarian secara sering."

Pernyataan ini sudah cukup untuk menjelaskan masalah tersebut.

Kesimpulannya: Keselamatan bukanlah pilihan, melainkan suatu keharusan.

Keamanan situs web bukan sekadar bonus, melainkan masalah hidup dan mati.

Menonaktifkan fitur pencarian bawaan WordPress mungkin tampak seperti tindakan kecil, tetapi hal itu dapat menyelamatkan basis data Anda dari kelebihan beban.

Di era kelebihan informasi ini, kebijaksanaan sejati bukanlah terletak pada penambahan fitur, melainkan pada penghapusan fitur-fitur yang tidak efisien atau berbahaya secara tegas.

Ingat: Keselamatan bukanlah biaya, melainkan nilai.

Jika Anda masih ragu, tanyakan pada diri sendiri: Apakah Anda lebih memilih membiarkan basis data Anda rusak di tengah tawa para penyerang, atau Anda lebih memilih untuk mengendalikan situasi?

发表 评论

Alamat email Anda tidak akan dipublikasikan. 必填 项 已 用 * 标注

Direktori Artikel
Gulir ke Atas