Cloudflare ve Sunucu Güvenlik Duvarı Kaynaklı 403 Hatalarının Çözümü
Kargo Entegratör'ün WooCommerce sitelerine gönderdiği kargo bilgisi güncellemeleri veya API istekleri bazen 403
Forbidden hatasına düşebilir. Bu durum genellikle Cloudflare üzerindeki özel güvenlik kuralları veya sunucu tarafındaki
bot koruma sistemlerinden kaynaklanır.
1. Cloudflare Güvenlik Kurallarının Yapılandırılması (WAF)
Eğer sitede yurtdışı kaynaklı botları engellemek için özel kurallar (Custom Rules) tanımlıysa, Kargo Entegratör
servisinden gelen istekler bu filtreye takılabilir.
Çözüm: Güvenlik kuralını, güvenilir servisleri ve belirli URL yapılarını dışarıda tutacak (bypass) şekilde güncelleyin.
- İstisna Tanımlanacak Alanlar:
- Known Bots: Açık (On) konuma getirilmelidir.
- URI Path: /gcargo içeren veya kargo API uç noktası olan yollar kuraldan muaf tutulmalıdır.
- Örnek Expression: (ip.src.country ne "TR" and not cf.client.bot and not http.request.uri contains "gcargo")
2. User-Agent Eksikliği ve Header Transform Rule
Bazı sunucu güvenlik yazılımları (örneğin Imunify360), gelen HTTP isteklerinde User-Agent bilgisi boş olduğunda isteği
otomatik olarak reddeder (403 hatası) veya sonsuz döngüye (loop) sokar. Kargo servislerinden gelen bazı webhook veya
cron isteklerinde bu başlık boş olabilir.
Çözüm: Cloudflare üzerinde bir "HTTP Request Header Transform Rule" oluşturarak, belirli isteklere yapay bir User-Agent
tanımlanmalıdır.
- Kural Mantığı: Eğer istek URL'si kargo servisiyle ilgili anahtar kelimeleri (gcargo, wc-api vb.) içeriyorsa, bu
isteğe sabit bir tarayıcı kimliği atayın.
- Yapılandırma:
- Field: User-Agent
- Value: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0
Safari/537.36 (veya benzeri güncel bir string).
Özet Sonuç
Bu iki adım uygulandığında;
1. Cloudflare yurtdışı bot korumasına takılan servis istekleri "istisna" kapsamına alınır.
2. Sunucu tarafında "boş User-Agent" nedeniyle oluşan engellemeler, Cloudflare üzerinden başlık manipülasyonu yapılarak
aşılır.