WordPress Bot Trafiğini Doğru Teşhis Etmek
Varsayımsal bir WooCommerce mağazasında wp-login.php ve xmlrpc.php isteklerinin arttığını, PHP işçilerinin dolduğunu düşünün. Bu gözlem tek başına saldırı veya yetersiz hosting kanıtı değildir. İstek hacmini, yanıt sürelerini, sunucu kaynaklarını ve tamamlanan kullanıcı işlemlerini birlikte incelemek gerekir.
Bu rehber, WordPress ve WooCommerce için Cloudflare WAF kurallarını ve oran sınırlamayı ele alır. Yönetilen kurallar, özel ifadeler, uç noktaya göre sayaçlar ve geri alma süreci birlikte değerlendirilir. Sayısal eşikler ölçülmüş müşteri sonucu veya evrensel öneri değildir; plan özellikleri ve gerçek trafik doğrulanmadan uygulanmamalıdır.
Hangi WordPress İşlemleri Hedef Olur?
Bilinen Uç Noktaları İnceleyin
Varsayılan giriş yolu, XML-RPC, arama, yorum ve kayıt formları kolay bulunabilir. Ürün tarama ve sepet işlemleri de yüksek maliyetli istekler üretebilir. Her yoğunluk kötü niyetli değildir: meşru entegrasyonlar, ortak IP kullanan ziyaretçiler ve hatalı bir istemcinin tekrarları benzer belirtiler oluşturabilir. Önce hangi işlemin kaynak tükettiğini belirleyin.
Cloudflare, proxy üzerinden geçen web isteklerini kendi ağında değerlendirir. Açık origin adresine doğrudan ulaşan trafik bu korumadan geçmez. Origin erişimini ayrıca sınırlandırın; Cloudflare IP aralıkları veya ortak origin-pull sertifikası tek başına sizin alan adınızı doğrulamaz. Doğru yapılandırılmış Tunnel ya da kurulumunuza bağlı origin kimlik doğrulaması gibi seçenekleri, beklenen hostname ve gerekli yönetim erişimiyle birlikte değerlendirin.
WAF bilinen saldırı kalıplarını filtreleyebilir; oran sınırlama belirlenen koşullara uyan istekleri sayar. Bu katmanlar uygulamanın kimlik doğrulamasının ve yetki kontrollerinin yerini tutmaz. Başarıyı yalnız engellenen istek sayısıyla değil, meşru işlemlerin devam etmesi ve origin yüküyle ölçün.
Cloudflare WAF Katmanlarını Anlamak
Yönetilen Kural Setleri ve Planlar
Cloudflare Free Managed Ruleset tüm planlarda bulunur. Cloudflare Managed Ruleset ve OWASP Core Ruleset ise Pro ve üzeri planlarda sunulur. Hesabınızdaki etkinleştirme ve istisna seçeneklerini Cloudflare WAF dokümantasyonu ile karşılaştırın. Yönetilen koruma bazı bilinen saldırıları azaltabilir; savunmasız eklentiyi onarmaz ve tüm uygulama risklerini kapsamaz.
Özel Kurallar ile Sayaçları Ayırın
Bir özel WAF kuralı tek isteğin yolunu, yöntemini ve desteklenen diğer alanlarını eşleştirir. Kısa süredeki tekrarları saymak için oran sınırlama gerekir. Giriş POST’larına Managed Challenge uygulanabilir; bu her eşleşen isteği etkileyebilir ve başarısız parolaları kendiliğinden ayırt etmez. XML-RPC kullanılmıyorsa engellenebilir; gerekiyorsa entegrasyon doğrulaması ve ölçülmüş sınırlar korunmalı, tarayıcı challenge’ı kullanılmamalıdır.
Kural sırası sonucu değiştirir: özel kurallar, oran sınırlama ve yönetilen kurallar farklı aşamalarda bu sırayla çalışır. Önceki aşamadaki Block veya Managed Challenge gibi sonlandırıcı bir eylem, sonraki değerlendirmeyi engelleyebilir. Her örneği birlikte açmak veya challenge’dan block’a otomatik geçiş beklemek doğru değildir. İstisnayı atlatacağı kuraldan önce ve gereken kapsamda tanımlayın.
Oran Sınırlama Nasıl Çalışır?
Sayaçların Kapsamı ve Sınırları
IP başına sayaç, aynı adresi paylaşan farklı kullanıcıları bir araya getirir. Cloudflare sayaçları veri merkezine göre tutar; aynı coğrafi konumdaki veri merkezleri arasında paylaşım istisnası vardır. Bu, dünya çapında tek bir IP sayacı değildir. Sayaç güncellemeleri gecikebildiğinden oran sınırı, origin’e tam olarak belirli sayıda isteğin ulaşacağını garanti etmez. Panel, veri merkezi kimliğini (cf.colo.id) sayaç özelliğine otomatik ekler; API ile tanımlamada bunu açıkça characteristics listesine koymak gerekir. cf.colo.id bir eşleşme alanı olarak kullanılmamalıdır.
Güncel standart olanaklar Free’de 1, Pro’da 2, Business’ta 5 oran kuralıdır; Enterprise kapsamı sözleşmeye bağlıdır. Free, Path/Verified Bot alanları ve 10 saniyelik sayım dönemi sunar. Pro URI/host/query alanlarını ekler ancak Method alanını içermez. POST yöntemiyle dakikada 10 giriş isteği örneği Business veya uyumlu Enterprise gerektirir. Sayım, eşleşen istekleri kapsar; başarısız parolaları değil. Plan, dönem ve eylem ayrıntılarını oran sınırlama belgelerinden ve hesabınızdan doğrulayın.
Varsayılan sayım ifadesi eşleşme ifadesiyle aynıdır. Özel sayım ifadesi tanımlarsanız yol/yöntem filtresini kendiliğinden devralmaz; gereken koşulları açıkça ekleyin. Yanıt alanlarıyla sayım yanıt gönderildikten sonra yapılır; 401/403 kodlarının gerçekten başarısız giriş anlamına geldiğini uygulamada doğrulamadan kullanmayın.
Dar Kapsamlı İstisnalar
Ofis veya entegrasyon için genel IP Allow tanımlamak birçok güvenlik kontrolünü atlatabilir. Gerekirse yalnız sorun çıkaran kuralın ifadesine, gerekli yol/yöntem ve doğrulanmış kaynak için istisna ekleyin. Tüm oran sınırlama aşamasını Skip etmek tek kurala istisna vermekten daha geniştir. POS ve ödeme geri çağrılarında uygulama imzasını veya kimlik doğrulamasını koruyun; User-Agent ya da tüm ASN’ye izin vermeyi güven kanıtı saymayın.
WordPress İçin Uygulama Örnekleri
1) Giriş İsteklerini Sınırlandırın
Önce sitenin gerçek giriş yolunu ve bu yolu yönetici dışında müşterilerin de kullanıp kullanmadığını belirleyin. Business uyumlu örnek: /wp-login.php için POST, aynı eşleşme üzerinden IP başına 10 istek/60 saniye ve Managed Challenge. Free/Pro/Business challenge eylemlerinde mitigation timeout sıfırdır; başarılı doğrulama sayacı sıfırlar, eşik tekrar aşılırsa yeniden challenge oluşabilir. Bu bir Challenge→Block merdiveni değildir. Ortak IP, parola sıfırlama ve otomasyon akışlarını test edin; eşik örnektir.
Örnekler alan adının kök dizinine kurulu WordPress varsayar. Host, alt dizin, URL normalizasyonu ve rewrite sonrası tüm kabul edilen yolları doğrulayın; örnekler hazır bir API isteği değil yapılandırma açıklamasıdır.
2) XML-RPC Kullanımını Doğrulayın
XML-RPC’yi uzaktan yayınlama veya başka bir entegrasyon kullanmıyorsa engelleyin. Gerekiyorsa örnek bir değerlendirme, yalnız bu yol için IP başına 5 istek/60 saniye ve 10 saniyelik Block olabilir; 60 saniyelik yol kuralı Pro veya üzeri içindir ve gerçek entegrasyon trafiğine göre değiştirilmelidir.
İstek sayısı XML-RPC içindeki yöntem veya parola denemesi sayısı değildir. Güncel WordPress, aynı XML-RPC sunucu nesnesindeki ilk kimlik doğrulama hatasından sonra sonraki denemeleri durdurur; bu nedenle tarihsel multicall parola çoğaltma yöntemi güncel WordPress için aynı şekilde geçerli değildir. Makine istemcilerine tarayıcı challenge’ı uygulamayın. Süreli Block, sayaç hızının düşmesiyle kendiliğinden hemen kalkmaz; seçilen engelleme dönemi boyunca ilgili eşleşmeleri etkiler.
3) Arama, Yorum ve Formları Koruyun
Arama, yorum, kayıt ve sepet işlemlerinin gerçek istek yollarını ve yöntemlerini çıkarın. Bir tarayıcı sayfasında değerlendirilebilen doğrulama, JSON bekleyen AJAX/API isteğini bozabilir. Form doğrulaması için Turnstile kullanılıyorsa sunucu Siteverify sonucunu işlemden önce denetlemelidir; yalnız widget yeterli değildir. Token beş dakika geçerli ve tek kullanımlıdır. Kimlik doğrulama, yetki, istek maliyeti ve istemcinin hata sonrası davranışı ayrıca korunmalıdır.
4) Statik İçerik ve Önbelleği Ayırın
Statik dosyaların uygun önbellek politikası origin yükünü azaltabilir. Cache hit edge’de karşılanırken miss ve yeniden doğrulama origin’e ulaşabilir; önbellekten sunulan istekler de WAF değerlendirmesinden geçer. Güvenlik başlıkları ayrı bir katmandır: HTTP güvenlik başlıklarını doğru yapılandırın. Kişiye özel JSON veya oturum yanıtlarını yalnız dosya uzantısına bakarak ortak önbelleğe almayın.
5) Kural Eşleşmelerini İnceleyin
Security Events içindeki kural kimliğini, eylemi, yolu ve zamanı uygulama günlükleriyle karşılaştırın. Özel kurallarda Log eylemi Enterprise’a özeldir; her hesapta genel bir Log/Simulate modu bulunduğunu varsaymayın. Hesapta sunulan önizleme veya Rules simulator olanağını kullanın; yoksa dar kapsamlı kontrollü test ve geri alma hazırlayın. Skip kuralındaki eşleşme kaydı gerçek bir bypass’ı kaydeder, etkisiz deneme modu değildir.
Şüpheli Trafiği Değerlendirmek
Davranış Sinyallerinin Sınırları
User-Agent başlığı istemci tarafından taklit edilebilir. Hızlı dolaşım veya form sonrası tekrar gibi gözlemleri kaynak maliyetiyle ilişkilendirin. Sıradan özel kurallar önceki isteklerin keyfî sırasını izlemez; uygun oran sayaçları, desteklenen davranış sinyalleri veya uygulama kontrolleri gerekir. Güncel cf.threat_score daima sıfır döndürür; eski “yüksek tehdit skoru” tarifleri kullanılabilir bir risk ölçütü değildir.
Ülke, ASN ve Bot İstisnaları
ASN, otonom sistem numarasıdır; bir servis sağlayıcı grubu anlamına gelmez. ASN filtresi çok sayıda ilgisiz meşru kullanıcıyı etkileyebilir ve ülke filtresinden kendiliğinden daha hassas değildir. Coğrafi veya ASN kısıtı gerekiyorsa gerekçeyi, ilgili uç noktayı ve kurtarma erişimini belgeleyin. Doğrulanmış bot istisnalarını gerekli herkese açık okuma yollarıyla sınırlayın; giriş ve API yazma işlemlerine genel bypass vermeyin.
Uygulama Güvenliğini Sürdürün
OWASP Top 10, uygulama risklerini değerlendirmek için bir referanstır. Yönetilen WAF kuralları bazı saldırı kalıplarını azaltabilir ancak hatalı yetkilendirme, güncel olmayan eklentiler veya iş mantığı açıklarının tamamını çözmez. Planınızın sunduğu kural setleriyle birlikte uygulama güncellemelerini, erişim haklarını ve güvenli geliştirme kontrollerini sürdürün.
WooCommerce İçin Örnek Senaryo
Önce Gözlem, Sonra Kural
Varsayımsal mağazada önce giriş ve XML-RPC trafiğini normal kullanıcı ve entegrasyon hacminden ayırın. Yukarıdaki 10/60 giriş ve 5/60 XML-RPC değerleri yalnız örnektir; plana, ortak IP kullanımına ve işlem maliyetine göre değerlendirilir. XML-RPC kullanılmıyorsa engelleyin; gerekiyorsa yalnız ilgili kuralda dar kaynak istisnası ve uygulama doğrulaması korunsun. Burada ölçülmüş müşteri sonucu sunulmuyor.
WooCommerce akışında Store API, wc-ajax ve admin-ajax farklı taşımalardır. Örnek Business kuralı yalnız /wp-json/wc/store/v1/cart/add-item yoluna POST için IP başına 30 istek/60 saniye ve 10 saniye Block değerlendirebilir; tüm REST yazmalarına öneri değildir. rest_route biçimi, alt dizin kurulumları ve rewrite ile aynı işleve ulaşan yollar ayrıca kapsanmadan bunu tam koruma saymayın. 429 sonrası istemci davranışını ve sandbox ödeme akışını test edin; API’ye Managed Challenge döndürmeyin.
Önbellek ve Doğrulama Uyumluluğu
Kişiye Özel Yanıtları Koruyun
Giriş, kişiye özel oturum, sepet ve ödeme yanıtları ortak önbelleğe alınmamalıdır. WAF ile cache farklı kurallardır; önbellek isabeti güvenlik kontrollerini ortadan kaldırmaz. Cache dışlama ve yeniden doğrulama davranışını, giriş yapmış ve çıkış yapmış oturumlarda test edin. Yalnız sayfanın açılması doğru kullanıcı verisinin sunulduğunu kanıtlamaz.
İstemciye Uygun Eylem Seçin
Challenge, tam HTML doğrulama sayfası döndürebilir; AJAX, XML-RPC, webhook ve API akışlarının bunu tamamlayacağını varsaymayın. Block eylemi de meşru işlemi reddedebilir. Mobil tarayıcı, ortak IP, oturum açma, parola sıfırlama ve kampanya yoğunluğu için uygun eşik ve hata kurtarma davranışı ölçülmelidir. Eylem değişikliği kontrollü ve geri alınabilir olsun.
Uygulama Kontrol Listesi
1) Sunulan Yönetilen Kuralları Kontrol Edin
Önce planın sunduğu setleri doğrulayın: Free Managed Ruleset tüm planlarda, Cloudflare Managed Ruleset ve OWASP Core Ruleset Pro ve üzerindedir. Gerekli bir managed-rule istisnasını yalnız ilgili isteklere ve kurala daraltın; atlatacağı ruleset çalıştırmasından önce yerleştirin. “Tüm korumayı kapat” yaklaşımı, tek yanlış eşleşmenin çözümü değildir.
2) Giriş ve Yönetim Erişimini Planlayın
Girişte amaç tekrar saymaksa oran kuralı seçin; her POST’u eşleştiren özel challenge kuralıyla bunu karıştırmayın. XML-RPC için kullanım envanterine göre engelleme veya istemciye uygun sınır belirleyin. Yönetim alanına ağ/Access kısıtı uygulanacaksa herkese açık /wp-admin/admin-ajax.php ve /wp-admin/admin-post.php işlemlerini, ayrıca gerekli eklenti yollarını koruyun. Giriş yolunu yalnız personele özel olduğunda ayrıca kısıtlayın; ofis IP’sine genel güvenlik bypass’ı vermeyin.
3) Form ve AJAX Eylemlerini Ayırın
AJAX için önce eklenti eylemini ve action değerinin query içinde mi POST gövdesinde mi geldiğini inceleyin. http.request.uri.args gövdeyi okumaz; http.request.body.form Enterprise gerektirir ve içerik türü/boyut sınırları vardır. Rate limiting içindeki kullanılabilir alanlar ayrıca plana bağlıdır. Gereken alan yoksa ilgili eylemi uygulamada veya desteklenen origin katmanında sınırlayın. Tüm admin-ajax POST’larına 120/dakika challenge gibi genel bir tarif kullanmayın.
4) Gözlemleyin ve Test Edin
Enterprise özel kurallarında Log ile gözlem yapılabilir; diğer hesaplarda mevcut olaylar, sunulan önizleme ve dar kapsamlı testler kullanılır. Kural eşleşmesini, müşterinin tamamlayabildiği işlemle birlikte doğrulayın. Görünür olay olmaması, korumanın gereksiz veya etkili olduğunu tek başına kanıtlamaz.
5) Diğer Güvenlik Katmanlarını Tamamlayın
TLS, güvenlik başlıkları, oturum cookie ayarları, güncellemeler ve önbellek politikası birlikte yönetilmelidir. Free Bot Fight Mode ile Pro/Business Super Bot Fight Mode farklıdır: WAF Skip, Super Bot Fight Mode aşamasını atlayabilir ancak Free Bot Fight Mode’u atlayamaz. Daha geniş bot koruması açılmadan önce kullanılan ürünün ayarlarını ve gerekli istemcilerin uyumluluğunu test edin.
Yaygın Hataları Gidermek
Meşru Kullanıcı Engelleniyorsa
Önce sorunlu istek ve kural kimliğini bulun; gerekirse yalnız o kuralı geri alın veya kapsamını daraltın. API akışını Block’tan Challenge’a çevirmek uyumluluğu düzeltmeyebilir. Ekibin IP’leri değişiyorsa erişim kurtarmasını planlayın, ancak genel Allow ile diğer güvenlik katmanlarını atlatmayın. Dar istisnadan sonra hem izinli hem izinsiz ağları test edin.
Origin Yükü Devam Ediyorsa
Edge istek sayısını origin’e ulaşan hacimden ayırın. Engellenen bir istek PHP’ye ulaşmadığından aynı istek için origin kaydı olmayabilir. Statik içerik önbelleğini, miss ve yeniden doğrulama davranışını, doğrudan origin erişimini ve diğer dinamik yolları inceleyin. Kişiye özel JSON’u veya başka yanıtları yalnız HTML olmadıkları için ortak önbelleğe almayın.
Entegrasyon Çalışmıyorsa
Ödeme, kargo veya ERP akışını bozan kuralı olaylardan belirleyin. Gereken istisnayı ilgili yol, yöntem, doğrulanmış kaynak ve sorunlu kuralla sınırlandırın; servis imzasını veya kimlik doğrulamasını koruyun. Sağlayıcının yayımladığı güncel IP aralıkları varsa bunları değerlendirin, tüm ASN’ye veya taklit edilebilir User-Agent’a genel izin vermeyin. Webhook tekrarlarını ve hata kurtarmasını sandbox ortamında doğrulayın.
İzleme ve Bakım
Kullanılabilir Bildirimleri Doğrulayın
Cloudflare bildirim türleri ve ayarlanabilir eşikler plan ile ürüne bağlıdır; her hesapta istenen herhangi bir sayaç için alarm kurulamaz. Hesabın sunduğu bildirimin hangi olayı ve süreyi ölçtüğünü doğrulayın. Gerekli sinyal yoksa uygulama ve origin izleme sisteminde uygun uyarı tanımlayın. Uyarıyı yalnız engellenen trafikle değil işlem hataları ve kaynak kullanımıyla ilişkilendirin.
Riskle Uyumlu İnceleme Takvimi
Yayına alma ve önemli değişikliklerden sonra daha sık, kararlı dönemde risk ve trafikle uyumlu aralıklarla inceleme yapın. İlk dönemde haftalık, daha sonra aylık kontrol bir örnektir. Kural sayısı artırmak yerine yanlış eşleşmeyi, kapsanmayan yolları ve kapasite değişimini ölçün; her değişikliğin etkisini ve geri alma yolunu kaydedin.
Kural ve Geri Alma Kaydı Tutun
Kuralın amacı, plan gereksinimi, ifade, eylem, sayaç, eşik, süre, istisna ve sırasını yazın. Test edilen login/checkout/form/API akışları, izinli ağlar ve alternatif yolları belirtin. Sorun bildiriminde URL, zaman ve istek kimliği yeterlidir; parola veya ödeme bilgisi istemeyin. Geri alma sorumlusu ve erişim kurtarma yöntemi belli olsun.
Yapılandırmayı Sürekli Doğrulamak
Koruma ve İş Akışını Birlikte Ölçün
Cloudflare WAF ve oran sınırlama, uygulamanın gerçek yolları ve kullanıcı akışlarıyla birlikte doğrulandığında yararlı bir güvenlik katmanı oluşturabilir. Girişte istek sayımı, gerekli XML-RPC erişimi ve belirli REST/AJAX işlemleri ayrı ele alınmalıdır. Düşük sunucu yükü veya sorunsuz ödeme sonucu varsaymayın; karşılaştırılabilir dönemlerde ölçün.
Uç noktaları çıkarın, plan özelliklerini doğrulayın, dar kapsamlı kuralları güvenli test ortamında sınayın ve geri alma hazırlayın. WAF belgeleri ile oran sınırlama belgeleri güncel başvuru kaynaklarıdır. Kural dilinin geçerli olması; doğru plan, tüm route biçimleri ve iş akışı uyumluluğunun yerine geçmez.
Ölçümde engellenen meşru istekleri, origin kaynaklarını, gecikmeyi ve tamamlanan işlemleri birlikte izleyin. Eklenti veya entegrasyon değişince test matrisini yenileyin. Bu bakım rutini, eski bir kural listesinin doğrulanmadan sürekli kullanılmasını önler.
Teknik Kaynaklar
- Cloudflare yönetilen WAF kuralları
- Cloudflare özel kuralları
- Oran sınırlama: planlar ve sınırlar
- İstek sayaçları
- Oran sınırlama parametreleri
- Kural aşamalarının etkileşimi
- Skip seçenekleri
- Challenge uyumluluğu
- WordPress herkese açık AJAX işleyicileri
- WordPress herkese açık form işleyicileri
- WooCommerce Store API
- Cloudflare form gövdesi alanı
- WordPress REST API keşfi
- Turnstile sunucu doğrulaması





