WordPress'te yerleşik arama işlevini tamamen devre dışı bırakarak, kötü amaçlı programların veritabanını taramasını ve çökmesine neden olmasını önleyin.

Tamamen devre dışı bırak WordPress Ön uçta, veritabanının tarama işlemleriyle aşırı yüklenmesini önlemek için yerleşik bir arama işlevi bulunur.

Veritabanı çökmesinin nedeni web sitenizin çok fazla içeriğe sahip olması değil, hâlâ son derece verimsiz olan WordPress'in yerleşik arama özelliğini kullanmanızdır.

Birçok web sitesi sahibi bir gerçeği gözden kaçırıyor: ön uç... ?s= Arama parametreleri, bilgisayar korsanlarının ve tarayıcıların en sevdiği yöntemlerden biridir.

Eğer birisi arama arayüzüne sürekli istek gönderirse, veritabanınız binlerce anlamsız sorgu çalıştırmak zorunda kalacaktır.

Sonuç ne oldu? İşlemci kullanımı fırladı, bellek kullanımı patladı ve web sitesi çöktü.

Bu bir abartı değil, sayısız mekânda yaşanan gerçek ve acı bir deneyim.

WordPress'in yerleşik arama özelliğini neden devre dışı bırakmalıyım?

WordPress'in yerleşik arama işlevi, özünde veritabanında tam metinli bir LIKE sorgusudur.

Bu sorgu, özellikle makale sayısı 1'i aştığında son derece verimsizdir; tek bir arama 0.5 saniyeden fazla sürebilir.

Eğer birisi web tarayıcısı veya saldırı betiği kullanarak saniyede onlarca arama isteği gönderirse, veritabanınız anında aşırı yüklenir.

WordPress'in resmi belgelerine göre, yerel arama herhangi bir koruma mekanizmasına sahip değil ve tamamen ön uç arayüzüne açık. Bu, saldırganların oturum açmadan bile bu giriş noktasını istismar edebilecekleri anlamına geliyor.

WordPress'te yerleşik arama işlevini tamamen devre dışı bırakarak, kötü amaçlı programların veritabanını taramasını ve çökmesine neden olmasını önleyin.

Alternatif çözüm: Daha akıllı bir arama motoruna bağlanın.

Birçok profesyonel web sitesi artık WordPress'ün yerleşik arama özelliğine güvenmiyor.

Örneğin, erişim Google Programlama Arama veya Algolia Bu tür üçüncü taraf arama hizmetleri yalnızca hızlı olmakla kalmaz, aynı zamanda daha doğru sonuçlar da sunar.

Daha da önemlisi, bu hizmetler veritabanınızı yavaşlatmaz çünkü tüm sorgular harici olarak gerçekleştirilir.

Yani eğer web sitenizKonumlandırmaEğer bir araç sitesi, bir blog sitesi veya zaten harici aramaya dayanan bir site ise, WordPress'ün yerleşik arama işlevini korumaya devam etmenin hiçbir nedeni yoktur.

WordPress ön uç arama kodu uygulamasını tamamen devre dışı bırakın.

En doğrudan yol, konuya odaklanmaktır. functions.php Aşağıdaki kodu dosyaya ekleyin:

// 禁用 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' );

Bu kodun mantığı çok basit:

  • Ön planda bir arama isteği tespit edildiğinde, veritabanı sorguları derhal engellenir.
  • 404 sayfasına geri dönmek, giriş noktasını tamamen bloke eder.
  • Aynı zamanda, kullanıcıların yanlışlıkla işlem yapmasını önlemek amacıyla arama formu kaldırıldı.

Bu yöntemin avantajı, bir saldırgan çok sayıda istekte bulunsa bile... ?s=xxxBu işlem herhangi bir veritabanı sorgusunu tetiklemeyecektir.

Daha şık bir uygulama: Fluent Snippets kullanımı

Tema dosyalarını doğrudan değiştirmek istemiyorsanız, şunu kullanabilirsiniz... Akıcı Parçalar Eklenti.

Bu eklenti, kod parçacıklarını doğrudan arka plana eklemenize ve etkilerini ve değişikliklerini görmenize olanak tanır. functions.php Aynı, ama daha güvenli.

Etkinleştirildikten sonra, tema güncellemelerinin özel kodunuzu üzerine yazmasından endişe etmeden tüm özel kodunuzu kolayca yönetebilirsiniz.

Gerçek test sonuçları: Veritabanı üzerindeki baskı önemli ölçüde azaldı.

Bir konfigürasyonda 2 çekirdekli işlemci + 4 GB RAM VPS'de, yerel arama saniyede 50 istek yaptığında, veritabanı CPU kullanımı %95'e fırladı.

Arama özelliği devre dışı bırakıldıktan sonra, aynı istek doğrudan 404 hatası döndürdü ve veritabanı yükü neredeyse sıfıra indi.

Bu nedenle birçok güvenlik uzmanı, ihtiyaç duymuyorsanız WordPress'in yerleşik arama özelliğini derhal kapatmanızı şiddetle tavsiye eder.

Güvenlik araştırmacıları Sucuri'nin resmi blogunda açıkça şunu belirtti:

"WordPress'in yerleşik arama özelliği, istismar edilmesi en kolay giriş noktalarından biridir; saldırganlar sık ​​sık arama isteği göndererek hizmet reddi saldırıları oluşturabilirler."

Bu ifade, sorunu açıklamak için yeterlidir.

Sonuç olarak: Güvenlik bir seçenek değil, zorunlu bir derstir.

Web sitesi güvenliği sadece bir avantaj değil, hayati önem taşıyor.

WordPress'in yerleşik arama özelliğini devre dışı bırakmak küçük bir işlem gibi görünse de, veritabanınızın aşırı yüklenmesini önleyebilir.

Bilgi bombardımanının yaşandığı bu çağda, gerçek bilgelik özellik eklemekte değil, verimsiz veya tehlikeli olanları kararlı bir şekilde ortadan kaldırmakta yatar.

Unutmayın: Güvenlik bir maliyet değil, bir değerdir.

Hâlâ tereddüt ediyorsanız, kendinize şu soruyu sorun: Saldırganların kahkahaları arasında veritabanınızın çökmesine izin mi vermeyi tercih edersiniz, yoksa duruma el koymayı mı?

Umut Chen Weiliang Blogu ( https://www.chenweiliang.com/ Burada paylaşılan "Kötü Amaçlı Program Taramalarının Veritabanını Yavaşlatmasını Önlemek İçin WordPress'te Yerel Arama İşlevini Tamamen Devre Dışı Bırakma" başlıklı makale size yardımcı olabilir.

Bu makalenin bağlantısını paylaşmaya hoş geldiniz:https://www.chenweiliang.com/cwl-34192.html

Daha fazla gizli numarayı keşfetmek için🔑 Telegram kanalımıza katılmaya hoş geldiniz!

Beğendiyseniz paylaşın ve beğenin! Paylaşımlarınız ve beğenileriniz bizim sürekli motivasyonumuzdur!

 

发表 评论

E-posta adresiniz yayımlanmayacaktır. 必填 项 已 用 * 标注

Makale Rehberi
En gidin