Direktori Artikel
Lumpuhkan sepenuhnya WordPress Bahagian hadapan mempunyai fungsi carian asli untuk mengelakkan pangkalan data daripada dibebani oleh pengimbasan.
Pangkalan data ranap bukan kerana laman web anda mempunyai terlalu banyak kandungan, tetapi kerana anda masih menggunakan carian WordPress natif yang sangat tidak cekap itu.
Ramai pemilik laman web terlepas pandang satu fakta: bahagian hadapan... ?s= Parameter carian merupakan kegemaran penggodam dan pengimbas.
Jika seseorang terus membuat permintaan ke antara muka carian, pangkalan data anda akan terpaksa melaksanakan beribu-ribu pertanyaan yang tidak bermakna.
Hasilnya? Penggunaan CPU meningkat mendadak, penggunaan memori meletup, dan laman web tersebut ranap.
Ini bukan keterlaluan, tetapi pengalaman sebenar dan menyakitkan di banyak laman web.
Mengapa melumpuhkan carian natif WordPress?
Fungsi carian terbina dalam WordPress pada asasnya ialah pertanyaan LIKE teks penuh dalam pangkalan data.
Pertanyaan ini sangat tidak cekap, terutamanya apabila bilangan artikel melebihi 1; satu carian mungkin mengambil masa lebih daripada 0.5 saat.
Jika seseorang menggunakan perayap web atau skrip serangan untuk menghantar berpuluh-puluh permintaan carian sesaat, pangkalan data anda akan dipenuhi serta-merta.
Menurut dokumentasi rasmi WordPress, carian natif tidak mempunyai mekanisme perlindungan dan terdedah sepenuhnya ke bahagian hadapan. Ini bermakna penyerang boleh mengeksploitasi titik masuk ini tanpa perlu log masuk.

Penyelesaian alternatif: Sambungkan ke enjin carian yang lebih pintar
Banyak laman web profesional tidak lagi bergantung pada carian natif WordPress.
Contohnya, akses Carian Pengaturcaraan Google atau Algolia Perkhidmatan carian pihak ketiga sedemikian bukan sahaja pantas, tetapi juga memberikan hasil yang lebih tepat.
Lebih penting lagi, perkhidmatan ini tidak akan melumpuhkan pangkalan data anda kerana semua pertanyaan dilakukan secara luaran.
Jadi, jika laman web andaKedudukanJika ia merupakan laman web alat, laman blog atau laman web yang sudah bergantung pada carian luaran, tiada sebab untuk terus mengekalkan fungsi carian terbina dalam WordPress.
Lumpuhkan sepenuhnya pelaksanaan kod carian bahagian hadapan WordPress
Cara paling tepat adalah dengan memberi tumpuan kepada tema. functions.php Tambahkan kod berikut pada fail:
// 禁用 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' );
Logik kod ini sangat mudah:
- Sebaik sahaja permintaan carian latar depan dikesan, pertanyaan pangkalan data akan disekat serta-merta.
- Kembali ke halaman 404 menyekat sepenuhnya titik masuk.
- Pada masa yang sama, borang carian telah dialih keluar untuk mengelakkan tindakan pengguna yang tidak disengajakan.
Kelebihan kaedah ini ialah walaupun penyerang membuat banyak permintaan... ?s=xxxIa tidak akan mencetuskan sebarang pertanyaan pangkalan data.
Pelaksanaan yang lebih elegan: menggunakan Fluent Snippets
Jika anda tidak mahu mengubah suai fail tema secara langsung, anda boleh menggunakan... Coretan Lancar pasangkan.
Plugin ini membolehkan anda menambah coretan kod terus di latar belakang, dan untuk melihat kesan dan pengubahsuaian. functions.php Sama, tetapi lebih selamat.
Sebaik sahaja diaktifkan, anda boleh mengurus semua kod tersuai anda dengan mudah tanpa perlu risau tentang kemas kini tema yang akan menimpanya.
Keputusan sebenar: Tekanan pangkalan data menurun mendadak.
Dalam konfigurasi CPU 2-teras + RAM 4GB Pada VPS, apabila carian natif membuat 50 permintaan sesaat, penggunaan CPU pangkalan data meningkat kepada 95%.
Selepas melumpuhkan carian, permintaan yang sama mengembalikan ralat 404 secara langsung, dan beban pangkalan data hampir sifar.
Inilah sebabnya ramai pakar keselamatan sangat mengesyorkan untuk mematikan carian natif WordPress dengan segera jika anda tidak memerlukannya.
Penyelidik keselamatan menyatakan secara jelas dalam blog rasmi Sucuri:
"Carian natif WordPress merupakan salah satu titik masuk yang paling mudah untuk dieksploitasi; penyerang boleh mencipta serangan penafian perkhidmatan dengan membuat permintaan carian yang kerap."
Kenyataan ini sudah cukup untuk menjelaskan masalah ini.
Kesimpulannya: Keselamatan bukanlah satu pilihan, tetapi satu perkara yang wajib.
Keselamatan laman web bukan sekadar bonus, ia adalah soal hidup dan mati.
Melumpuhkan carian natif WordPress mungkin kelihatan seperti tindakan kecil, tetapi ia boleh menyelamatkan pangkalan data anda daripada dibebani.
Dalam era limpahan maklumat ini, kebijaksanaan sebenar bukanlah terletak pada penambahan ciri, tetapi pada penghapusan ciri-ciri yang tidak cekap atau berbahaya secara tegas.
Ingat: Keselamatan bukanlah satu kos, ia adalah satu nilai.
Jika anda masih teragak-agak, tanyakan kepada diri sendiri perkara ini: Adakah anda lebih suka membiarkan pangkalan data anda ranap di tengah-tengah ketawa penyerang, atau adakah anda lebih suka mengawal keadaan?
Blog Harapan Chen Weiliang ( https://www.chenweiliang.com/ Artikel "Melumpuhkan Sepenuhnya Fungsi Carian Asli dalam WordPress untuk Mencegah Pengimbasan Program Berniat Jahat daripada Menyeret Pangkalan Data," yang dikongsikan di sini, mungkin berguna untuk anda.
Selamat datang untuk berkongsi pautan artikel ini:https://www.chenweiliang.com/cwl-34192.html
