Scarnox · Blog

AWS WAF captcha nedir ve nasıl ele alınır

AWS WAF captcha'sı, bir site sahibi ziyaretçileri kontrol edecek şekilde yapılandırdığında Amazon'un Web Uygulama Güvenlik Duvarı'nın sunduğu bir doğrulamadır. Güvenlik duvarının şüpheli bulduğu bir istek, içerik yerine bir doğrulama sayfası alır. Ziyaretçi, gerçek sayfa yüklenmeden önce bir kontrolü geçmek zorundadır. Test ederken ya da veri toplarken buna rastlarsanız, onu nasıl tanıyacağınızı, site sahibinin neyi kontrol ettiğini ve Scarnox'un bugün ne yapabildiğini bilmeniz gerekir. Bu rehber üçünü de kapsar.

AWS WAF captcha nedir

AWS WAF, bir web uygulamasının önünde duran bir kural motorudur; Amazon CloudFront, bir Application Load Balancer ya da API Gateway üzerinde çalışır. Kurallar bir isteği izin verebilir, engelleyebilir, sayabilir ya da doğrulamaya tabi tutabilir. Doğrulama, kuralın nasıl ayarlandığına bağlı olarak sessiz bir JavaScript kontrolü ya da görünür bir captcha bulmacası olabilir.

Önemli nokta, kararın site sahibi tarafından verilmesidir. Güvenlik duvarı scraper'ınızın amacını bilmez. Yalnızca gördüğü trafiği puanlar: istek hızını, IP itibarını, başlıkları ve istemcinin davranışını.

Kodda nasıl tanınır

AWS WAF doğrulamaları çoğunlukla yanıtlarından tanınabilir. Yaygın bir sinyal x-amzn-waf-action yanıt başlığıdır; doğrulama genellikle gerçek sayfa görünmeden önce HTTP 202 durum koduyla sunulur. Site güvenlik duvarını farklı yapılandırdığı için bunları kanıt değil, sinyal olarak değerlendirin:

import requests

def looks_like_aws_waf(resp: requests.Response) -> bool:
    # Bir başlık sinyali, kanıt değil. Test ettiğiniz sayfa ile doğrulayın.
    return "x-amzn-waf-action" in resp.headers

resp = requests.get("https://example.com/products", timeout=30)
if looks_like_aws_waf(resp):
    print("Challenge served. Stop, slow down, and check your request rate.")
else:
    print("Status", resp.status_code)

Ayrıca sayfa kaynağında bir AWS WAF doğrulama yolundan yüklenen bir script'e ve betik çalışana kadar hiçbir içerik göstermeyen bir sayfaya bakın. Düz bir requests çağrısı çoğu zaman veriyi değil doğrulama sayfasını alır. Bu beklenen bir durumdur.

Site sahibi neyi yapabilir

Siteyi siz işletiyorsanız AWS WAF konsolu, doğrulamayı tetikleyen kuralları ayarlamanızı sağlar. En kullanışlı seçenekler şunlardır:

Kendi sitenizi test ediyorsanız en temiz çözüm, test çalıştırıcılarınız için bir izin listesidir. Kontrol etmediğiniz bir sitede doğrulamayı aşmaya çalışmayın. Bu sitenin korumasıdır ve erişiminizi ilk bozacak şey de budur.

Scarnox desteğinin durumu

Bu yüzden erişim izniniz olan bir sitede bugün AWS WAF doğrulamasıyla karşılaşırsanız seçenekler yukarıdaki gibidir: yavaşlayın, site sizinse bir izin listesi kullanın ya da site sahibinden bir API ya da veri akışı isteyin. PopularCaptcha akışınızı şimdi kurmak ve AWS WAF desteği canlıya çıktığında hazır olmak için hesap oluşturabilir ve kredit kartı gerekmeden ücretsiz deneme kredisiyle başlayabilirsiniz. Güncel fiyatlandırma fiyatlandırma sayfasındadır.

AWS WAF arkasındaki kendi sitenizi test edin

Site sahibiyseniz ve otomatik testlerinizin güvenlik duvarını, gerçek ziyaretçiler için korumayı zayıflatmadan geçmesini istiyorsanız, doğrulamayı aşmak yerine güvenlik duvarının kendi araçlarını kullanın:

Bu adımlar koruma yerinde kalır ve test trafiğini öngörülebilir kılar; ihtiyacınız olan sonuç budur. Test kurulumunuzda her değişiklikten sonra kuralları gözden geçirin, çünkü geçen ayki çalıştırıcılar için doğru olan bir kural bugün onları engelleyebilir.

Sorumlu scraping

Bir AWS WAF sayfasına istek atmanızın nedeni veri toplamaksa:

Sonraki adımlar