Scarnox · Blog

AWS WAF captcha क्या है और इसे कैसे संभालें

AWS WAF captcha, Amazon के Web Application Firewall द्वारा दिया जाने वाला challenge है, जब कोई site owner visitors की जाँच के लिए उसे configure करता है। जिस request को firewall संदिग्ध मानता है, उसे असली page के बजाय एक challenge page मिलता है। असली page लोड होने से पहले visitor को एक जाँच पास करनी होती है। अगर testing या data इकट्ठा करते समय यह सामने आए, तो आपको पहचानना आना चाहिए, जानना चाहिए कि site owner क्या नियंत्रित करता है, और यह भी कि Scarnox आज क्या कर सकता है। यह guide इन तीनों बातों को कवर करती है।

AWS WAF captcha क्या है

AWS WAF एक rules engine है जो किसी web application के सामने बैठता है, Amazon CloudFront, Application Load Balancer या API Gateway पर। Rules किसी request को allow, block, count या challenge कर सकते हैं। Challenge एक silent JavaScript check हो सकता है या एक दिखने वाला captcha puzzle, यह इस पर निर्भर करता है कि rule कैसे सेट है।

मुख्य बात यह है कि फ़ैसला site owner लेता है। Firewall को आपके scraper का मकसद नहीं पता होता। वह केवल उस traffic को score करता है जो उसे दिखता है: requests की rate, IP reputation, headers और client का व्यवहार।

Code में इसे कैसे पहचानें

AWS WAF challenges अक्सर उनके responses से पहचाने जा सकते हैं। एक आम संकेत x-amzn-waf-action response header है, और challenge अक्सर असली page दिखने से पहले HTTP status 202 के साथ आता है। इन्हें प्रमाण नहीं, संकेत मानें, क्योंकि sites firewall को अलग-अलग तरीके से configure करती हैं:

import requests

def looks_like_aws_waf(resp: requests.Response) -> bool:
    # यह एक header संकेत है, प्रमाण नहीं। जिस page की test कर रहे हैं, उससे पुष्टि करें।
    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)

Page source में उस script को भी देखें जो AWS WAF challenge path से लोड होती है, और ऐसे page को भी जो तब तक कोई content नहीं दिखाता जब तक script न चले। सादा requests call अक्सर असली data के बजाय challenge page पाएगा। यह अपेक्षित है।

Site owner क्या कर सकता है

अगर आप site चलाते हैं, तो AWS WAF console आपको वे rules tune करने देता है जो challenge ट्रिगर करते हैं। सबसे उपयोगी विकल्प ये हैं:

अगर आप अपनी ही site की testing कर रहे हैं, तो सबसे साफ़ समाधान है अपने test runners के लिए allowlist। जो site आपकी नहीं है, उस पर challenge को पार करने की कोशिश न करें। यह owner की सुरक्षा है, और यही वह पहली चीज़ है जो आपकी पहुँच तोड़ देगी।

Scarnox support कहाँ है

तो अगर कोई site, जिसके साथ आप काम करने के लिए अधिकृत हैं, आज AWS WAF challenge दिखाती है, तो विकल्प ऊपर वाले ही हैं: धीमे चलें, अगर site आपकी है तो allowlist इस्तेमाल करें, या site owner से API या data feed माँगें। आप खाता बनाएँ और मुफ़्त ट्रायल क्रेडिट से शुरू करें, कार्ड की ज़रूरत नहीं, ताकि अभी अपना PopularCaptcha flow सेट कर सकें और AWS WAF support आने पर तैयार रहें। मौजूदा pricing pricing page पर है।

AWS WAF के पीछे अपनी site की test करें

अगर आप site owner हैं और चाहते हैं कि automated tests firewall पास करें, बिना असली visitors के लिए उसे कमज़ोर किए, तो challenge के आसपास से निकलने के बजाय firewall के अपने tools इस्तेमाल करें:

ये कदम protection को बनाए रखते हैं और test traffic को अनुमानित बनाते हैं, जो असल में आपको चाहिए। अपने test setup में हर बदलाव के बाद rules की समीक्षा करें, क्योंकि पिछले महीने के runners के लिए जो rule सही था, वह अब उन्हें block कर सकता है।

ज़िम्मेदारी से scrape करें

अगर AWS WAF page तक पहुँचने का कारण data इकट्ठा करना है:

अगले कदम