
Rajinder Singh
Deep Learning Researcher
प्रकाशित Sep 17, 2026
अद्यतन Sep 17, 2026 · मिनट पढ़ने का समय

Go में AWS WAF CAPTCHA एकीकरण के दो अलग-अलग दायित्व होते हैं: समाधानकर्ता से दस्तावेज़ीकृत परिणाम मांगें, फिर इस समाधान का आज़माइश करने वाली एप्लिकेशन में सही तरीके से उपयोग करें। आधिकारिक SDK API आदान-प्रदान को ढकेगा, लेकिन यह निर्णय नहीं कर सकता है कि आपकी एप्लिकेशन ने पूर्ण प्रयास को स्वीकृत किया है।
इस पाठ्यपुस्तक का उपयोग CapSolver के साथ एक स्वामित्व वाले AWS WAF परीक्षण पृष्ठ के लिए किया गया है। यह गो मॉड्यूल स्थापित करने, कार्य बनाने, वापसी कुकी का उपयोग करने और SDK के परिवहन व्यवहार की समझ पर केंद्रित है। विचार यह नहीं है कि एक डोमेन पर स्वीकृत टोकन दूसरे डोमेन पर लागू होता है।
Go SDK कार्य बनाने और परिणाम प्राप्त करने के पीछे अपने Solve विधि को ढकता है। [API प per] (https://www.capsolver.com/glossary/api-library) इन कॉल को भाषा-स्तरीय विधियों में पैकेज करता है, लेकिन आपको अभी भी सही कार्य पैरामीटर और एप्लिकेशन तार्क की आवश्यकता होती है।
[आधिकारिक AWS WAF कार्य दस्तावेज़] (https://docs.capsolver.com/en/guide/captcha/awsWaf/) में AntiAwsWafTask और इसके solution.cookie परिणाम का वर्णन किया गया है। Go SDK के रूप में उत्तर के रूप में CapSolverResponse प्रस्तुत करता है, जिसमें Solution संकेतक शामिल है। इस अंतर का महत्व है: Solve सीधे कुकी स्ट्रिंग वापस नहीं करता है।
इस पाठ्यपुस्तक के लिए अपेक्षित क्रम निम्नलिखित है:
AWS अपन टोकन को AWS WAF स्मार्ट खतरा निवारण के हिस्से के रूप में वर्णित करता है। इस परिणाम को एक विशिष्ट प्रयास से जुड़े मान के रूप में व्यवहार करें, न कि एप्लिकेशन के लिए एक स्थायी अनुमति के रूप में।
एक छोटा Go मॉड्यूल बनाएं और इस उदाहरण के लिए उपयोग किए गए SDK संस्करण को स्थिर करें। पैकेज आधिकारिक CapSolver Go भंडार में प्रकाशित किया गया है।
mkdir capsolver-aws-waf-example
cd capsolver-aws-waf-example
go mod init capsolver-aws-waf-example
go get github.com/capsolver/capsolver-go@v0.0.0-20251204081438-e4e07af23eae
इस उदाहरण को Go 1.27.1 के साथ संकलित किया गया था। लंबा डेपेंडेंसी संस्करण एक Go प्रतीकात्मक संस्करण है जो एक विशिष्ट कमिट की पहचान करता है। इसे स्थिर करने से SDK स्रोत पुनर्प्राप्त करने योग्य बन जाता है; यह भविष्य के अपग्रेड को अनदेखा करने की सलाह नहीं है।
उदाहरण के साथ जनरेट किए गए go.mod और go.sum को बरकरार रखें। मानक Go डेपेंडेंसी प्रबंधन दस्तावेज़ इन फ़ाइलों और संस्करण चयन के बारे में विस्तृत जानकारी प्रदान करता है। SDK के अपग्रेड के समय, अनुरोध क्षेत्रों और प्रतिक्रिया निर्माण को कवर करने वाले परीक्षणों को फिर से चलाएं।
इस स्थापना ग्राहक प per तैयार करती है। यह एक AWS WAF परीक्षण पृष्ठ प्रदान नहीं करता, समाधान क्रेडिट खरीदता है, या प्रॉक्सी की व्यवस्था करता है। ये वास्तविक समाधान के लिए अलग-अलग आवश्यकताएं हैं।
उदाहरण वातावरण चर के माध्यम से एक स्वामित्व वाले पेज URL, एक प्रॉक्सी स्ट्रिंग और एक समाधान API कुंजी को पढ़ता है।
| चर | मान प्रदान करें |
|---|---|
OWNED_WAF_URL |
आपके द्वारा स्वामित्व वाले या परीक्षण के लिए अधिकृत AWS WAF पृष्ठ का URL |
CAPSOLVER_PROXY |
कार्य दस्तावेज़ के अनुसार फॉर्मेट किया गया प्रॉक्सी |
CAPSOLVER_API_KEY |
आपके CapSolver खाते के लिए समाधान API कुंजी |
इन चर के नाम उदाहरण के लिए हैं; ये अतिरिक्त API कार्य क्षेत्र नहीं हैं। Go कोड इन्हें websiteURL, proxy और SDK क्लाइंट के ApiKey से मैप करता है।
अपने सामान्य गुप्त व्यवस्थापक या विकास पर्यावरण का उपयोग करके पहुंच के लिए गुप्त जानकारी प्रदान करें। वास्तविक कुंजी को संग्रहीत स्रोत में न डालें, और समाधान कुंजी के लिए सामग्री-प्रबंधन क्रेडिट के स्थान पर उपयोग न करें। प्रॉक्सी क्रेडिट को उतना ही ध्यान देना चाहिए।
विशिष्ट स्वामित्व वाले URL का चयन करें जो चुनौती उत्पन्न करता है। एक सामान्य होमपेज अलग रास्ते के एक परीक्षण के लिए आवश्यक संदर्भ प्रदान नहीं कर सकता है। अपने परीक्षण डिज़ाइन के साथ एप्लिकेशन सत्र और नेटवर्क व्यवस्था को स्थिर रखें, अपने अनुरोध के लिए आवश्यक अनुरोध के रूप में समाधान परिणाम को अलग नहीं मानें।
निम्न कोड को main.go के रूप में सहेजें। इसके कार्य मैप और Solve कॉल आधिकारिक SDK और कार्य उदाहरण के अनुसार हैं। वातावरण जांच, स्पष्ट HTTPS होस्ट, समय सीमा और तैयार-कुकी जांच इस छोटे प्रोग्राम के लिए अतिरिक्त हैं। स्थानीय HTTP फिक्सचर स्क्रिप्ट के साथ SDK का परीक्षण किया गया; एक लाइव समाधान के लिए आपके समाधान कुंजी, प्रॉक्सी और स्वामित्व वाले पृष्ठ की आवश्यकता होती है और इसका परीक्षण नहीं किया गया।
package main
import (
"errors"
"fmt"
"log"
"net/http"
"os"
"time"
capsolver_go "github.com/capsolver/capsolver-go"
)
func solveAWS(pageURL, proxy, key string) (*capsolver_go.CapSolverResponse, error) {
if pageURL == "" || proxy == "" || key == "" {
return nil, errors.New("set OWNED_WAF_URL, CAPSOLVER_PROXY and CAPSOLVER_API_KEY")
}
client := capsolver_go.CapSolver{ApiKey: key}
result, err := client.Solve(map[string]any{
"type": "AntiAwsWafTask",
"websiteURL": pageURL,
"proxy": proxy,
})
if err != nil {
return nil, err
}
if result == nil || result.Status != "ready" ||
result.Solution == nil || result.Solution.Cookie == "" {
return nil, errors.New("no ready AWS WAF cookie result")
}
return result, nil
}
func main() {
capsolver_go.ApiHost = "https://api.capsolver.com"
http.DefaultClient.Timeout = 20 * time.Second
result, err := solveAWS(
os.Getenv("OWNED_WAF_URL"),
os.Getenv("CAPSOLVER_PROXY"),
os.Getenv("CAPSOLVER_API_KEY"),
)
if err != nil {
log.Fatal(err)
}
fmt.Println("AWS WAF result status:", result.Status)
// result.Solution.Cookie इस स्वीकृत परीक्षण प्रयास के लिए संबंधित है।
}
पिन किए गए SDK स्रोत में डिफ़ॉल्ट होस्ट HTTP URL पर फॉलबैक करता है। स्पष्ट नियुक्ति के माध्यम से capsolver_go.ApiHost स्वीकृत समाधान क्रेडेंशियल के साथ https://api.capsolver.com का चयन करता है।
SDK Go के डिफ़ॉल्ट HTTP क्लाइंट का उपयोग करता है। इसलिए http.DefaultClient.Timeout सेट करने से इस स्वतंत्र उदाहरण के लिए अनुरोध समय सीमा लागू होती है। यह प्रक्रिया-स्तरीय क्लाइंट को भी बदल देता है: यदि आप SDK को एक बड़े एप्लिकेशन में एम्बेड करते हैं, तो डिफ़ॉल्ट क्लाइंट के अन्य उपयोगकर्ताओं पर प्रभाव की समीक्षा करें।
20 सेकंड का मान एक उदाहरण सेटिंग है, सेवा पूर्णता गारंटी या पूर्ण कार्य के लिए एक समय सीमा नहीं है। SDK कई HTTP अनुरोध कर सकता है जब एक परिणाम प्राप्त करता है। प्रत्येक अनुरोध में समय सीमा होने के बावजूद, पूर्ण Solve कॉल 20 सेकंड की गति नहीं होती है।
Go net/http दस्तावेज़ क्लाइंट समय सीमा व्यवहार का वर्णन करता है। वॉर्पर एक संदर्भ-आधारित रद्द करने के पैरामीटर को उजागर नहीं करता है क्योंकि दिखाए गए SDK विधि में इसकी अनुमति नहीं है।
अपना CapSolver बोनस कोड जमा करें
अपने स्वचालन बजट को तुरंत बढ़ाएं!
CapSolver खाता में जमा करते समय बोनस कोड CAP26 का उपयोग करके हर भरोसा पर 5% बोनस प्राप्त करें - कोई सीमा नहीं।
अपने CapSolver डैशबोर्ड में अब इसे जमा करें
तीन वातावरण सेटिंग के साथ प्रोग्राम चलाएं। इस लाइव कमांड में अभी भी आपके स्वामित्व वाले पृष्ठ के साथ पुष्टि की आवश्यकता है; रिकॉर्ड किए गए परीक्षणों में स्थानीय HTTP फिक्सचर का उपयोग किया गया था:
go run .
जब SDK एक तैयार प्रतिक्रिया वापस करता है जिसमें खाली कुकी नहीं होती है, तो प्रोग्राम प्रतिक्रिया स्थिति प्रिंट करता है। यह स्पष्ट रूप से कुकी के खुद को प्रिंट नहीं करता है। मान उपयोगकर्ता परीक्षण के उस हिस्से के लिए result.Solution.Cookie में उपलब्ध है जो एप्लिकेशन फ्लो को जारी रखता है।
solveAWS में तीन अलग-अलग जांच होती है। एक Go त्रुटि कॉल को अस्वीकृत कर देती है। अनुपस्थित या अतैयार प्रतिक्रिया वाला वॉर्पर की तैयारी जांच अस्वीकृत कर देती है। एक खाली समाधान या खाली कुकी वाला परिणाम-सामग्री जांच अस्वीकृत कर देती है। यह कॉलिंग कोड के आगे बढ़ने से रोकता है बस केवल एक संकेतक वापस कर दिया गया है।
एक स्थिति प्रिंट एक सफल एप्लिकेशन दावा नहीं है। अपने परीक्षण रनर में अंतिम जांच जोड़ें जब आप उपयुक्त सत्र में वापसी मान का उपयोग करते हैं। यदि पृष्ठ अभी भी एक चुनौती प्रस्तुत करता है, तो अवलोकित चरण और संबंधित प्रदाता त्रुटि जानकारी को बरकरार रखें बजाय इसके कि प्रिंट की गई स्थिति को एप्लिकेशन ने प्रयास को स्वीकृत किया है के रूप में मान लें।
उदाहरण में HTTP कुकी जार या ब्राउज़र ऑटोमेशन लेयर का अनुसरण नहीं किया गया है। ये आपकी एप्लिकेशन द्वारा बनाए गए और बनाए रखे गए परीक्षण सत्र पर निर्भर करते हैं। अनुमानित कुकी डोमेन या वैश्विक हेडर जोड़ने से बचें जो असंबंधित अनुरोधों पर मान लागू करते हैं।
वैकल्पिक क्षेत्र तब महत्वपूर्ण होते हैं जब वास्तविक चुनौती संदर्भ और वर्तमान कार्य दस्तावेज़ उनकी आवश्यकता के अनुरूप होते हैं। AWS WAF कार्य गाइड में दस्तावेज़ीकृत स्थितियों के लिए awsKey, awsIv, awsContext और awsChallengeJS जैसे क्षेत्र शामिल हैं।
अपने पृष्ठ और समर्थित कार्य प्रकार के अनुरूप अनुरोध से शुरू करें। यदि सेवा आवश्यक संदर्भ की कमी की रिपोर्ट करती है, तो स्वामित्व पृष्ठ पर वर्तमान चुनौती की जांच करें और संबंधित दस्तावेज़ का पालन करें। बस एक खाली मान के साथ प्रत्येक वैकल्पिक क्षेत्र में मान डालने के बजाय जॉनसन के रूप में जांच करें।
चुनौती डेटा वर्तमान प्रयास के साथ संबंधित होना चाहिए। एक पृष्ठ URL को एक अलग पृष्ठ या समय से बचे चुनौती के अनुसार संग्रहीत मानों के साथ मिलाना अनुरोध को अधिक कठिन बना देता है। एक अनुरोध सिंटैक्टिकल रूप से सही हो सकता है जबकि इनपुट असंगत संदर्भ वर्णित करते हैं।
विस्तृत [AWS WAF CAPTCHA गाइड] (https://www.capsolver.com/blog/The-other-captcha/how-to-solve-aws-waf-with-capsolver) कार्य परिवार की व्याख्या करता है। इस Go उदाहरण में उत्तर एवं HTTP व्यवहार के भाषा-विशिष्ट निर्माण के साथ जोड़ा गया है; यह आवश्यक चुनौती जानकारी में कोई बदलाव नहीं करता है।
एप्लिकेशन केवल उस अधिकृत परीक्षण संदर्भ में उत्तर का उपयोग करना चाहिए जिसके लिए इसे प्राप्त किया गया था। AWS दस्तावेज़ टोकन डोमेन और डोमेन सूचियां के बारे में बताते हैं, जो टोकन के स्वीकृति के स्थान पर प्रभाव डालते हैं।
एक स्वामित्व एकीकरण परीक्षण के लिए, लक्ष्य होस्ट और परिणाम से जुड़े प्रयास को रिकॉर्ड करें। एप्लिकेशन-विशिष्ट क्लाइंट या ब्राउज़र लेयर को इसके इच्छित कुकी स्कोप को प्रबंधित करने के लिए छोड़ दें। न केवल वापसी स्ट्रिंग को हर होस्ट पर कॉपी करने का अनुमान लगाएं जहां एक क्रॉलर या एजेंट जाता है।
एक उपयोगी स्वीकृति जांच दो प्रश्नों का उत्तर देती है: क्या प्रदाता अपेक्षित परिणाम आकृति वापस करता है, और क्या एप्लिकेशन अगले कार्य को स्वीकृत करता है? दोनों परिणामों को बरकरार रखें। यदि पहला सफल होता है और दूसरा विफल होता है, तो डोमेन, सत्र, समय और एप्लिकेशन प्रतिक्रिया के बजाय एसडीके परिवहन विफलता के रूप में हर अस्वीकृति को चिह्नित न करें।
SDK AWS एक्सेस नीतियां नहीं कार्यान्वित करता है या आपके वेब एलएसी को बदलता है। आपकी एप्लिकेशन के WAF व्यवस्थापन अभी भी अनुरोध प्रबंधन के नियंत्रण में है।
उदाहरण को वास्तविक पिन किए गए SDK के साथ स्थानीय HTTP फिक्सचर पर चलाया गया था। परीक्षणों ने बाहर जाने वाले कार्य मैप, सीधे तैयार प्रतिक्रिया, बनाए रखे फिर से जांच प्रतिक्रिया, प्रदाता त्रुटि, अमान्य JSON, कुकी की कमी और सेटिंग की कमी की जांच की।
इस परीक्षण सतह लाइव समाधान की तुलना में संकीर्ण है। फिक्सचर ने खुद की कुकी मान प्रदान किया, और कोई वास्तविक AWS WAF पृष्ठ इसे स्वीकृत नहीं करता था। परीक्षण यह स्थापित करते हैं कि Go वॉर्पर स्थापित SDK के साथ अन्योन्य क्रिया करता है और इन प्रतिक्रिया आकृतियों का निपटारा करता है। ये परीक्षण लाइव सेवा संगतता या समाधान सफलता दर की स्थापना नहीं करते हैं।
एक स्रोत विवरण जिसके बारे में आगे के ग्राहक के विस्तार के समय ध्यान देने की आवश्यकता होती है: पिन किए गए SDK अपने प्रमाणीकरण को ClientKey के साथ सीरियलाइज़ करता है, जबकि REST उदाहरणों में clientKey दिखाया गया है। स्थानीय फिक्सचर वास्तविक SDK द्वारा भेजे गए कुछ वास्तविक डेटा के रूप में रिकॉर्ड करता है; यह बताता है कि लाइव एंडपॉइंट कैसा केसिंग स्वीकार करता है। वास्तविक अनुरोध के दौरान इस अंतर को दृश्य रखें, और SDK आंतरिक विवरण बदलने से पहले ऊपरी समर्थन की समीक्षा करें।
एक पहली लाइव जांच के लिए, एक प्रतिनिधि स्वामित्व पृष्ठ, एक वैध समाधान कुंजी और दस्तावेज़ीकृत प्रॉक्सी सेटअप का उपयोग करें। वापसी कुकी और अंतिम एप्लिकेशन परिणाम की पुष्टि करें। CapSolver का परीक्षण करें इस विशिष्ट जांच के लिए जब आप अन्य पृष्ठों पर एकीकरण विस्तार करने से पहले।
प्रश्न: सही Go आयात पथ क्या है?
github.com/capsolver/capsolver-go का उपयोग करें। इस उदाहरण में इसे स्थानीय एलियास capsolver_go द्वारा निर्दिष्ट किया गया है और इंस्टॉलेशन कमांड में दिखाए गए डेपेंडेंसी संस्करण को स्थिर किया गया है।
प्रश्न: Solve सीधे AWS WAF कुकी वापस करता है?
नहीं। यह एक उत्तर एनवेलप को वापस करता है। त्रुटि, प्रतिक्रिया स्थिति और समाधान की जांच के बाद, कुकी को result.Solution.Cookie के माध्यम से पहुंचें।
प्रश्न: आप सीधे API होस्ट सेट क्यों करते हैं?
पिन किए गए SDK स्रोत में HTTP फॉलबैक होस्ट होता है। उदाहरण प्रमाणीकरण भेजने से पहले HTTPS API एंडपॉइंट का चयन करता है। जब डेपेंडेंसी संस्करण बदलता है, तो इस व्यवहार की पुनः जांच करें।
प्रश्न: HTTP समय सीमा पूर्ण समाधान के लिए समाप्ति समय है?
नहीं। SDK कई अनुरोध जारी कर सकता है जब एक परिणाम प्राप्त करता है। प्रत्येक अनुरोध के लिए समय सीमा एक ही सीमा के लिए लागू नहीं होती है या दूरस्थ रद्द करने की स्थापना नहीं करती है।
प्रश्न: क्या इसे एक लाइव AWS WAF पृष्ठ पर परीक्षण किया गया था?
नहीं। Go कोड के वास्तविक SDK के साथ स्थानीय HTTP फिक्सचर पर चलाया गया था। एक लाइव समाधान कुंजी और एक स्वामित्व वाले AWS WAF परीक्षण पृष्ठ की आवश्यकता है जब एक सेवा व्यवहार और एप्लिकेशन स्वीकृति की जांच करने के लिए।

Rajinder Singh
Deep Learning Researcher
Making CAPTCHA solving more reliable in automated workflows.
लेखक के बारे में
एक अधिकृत AWS WAF LangChain वर्कफ़्लो बनाएं, जिसमें CapSolver टूल्स, प्रतिक्रिया निर्णय, नीति गेट्स, सत्र प्रबंधन, पुनः प्रयास और सत्यापन हों।

कैपसॉल्वर के साथ वेब स्क्रैपिंग में AWS WAF कैप्चा हल करें। कार्यकुशलता में वृद्धि करें, चुनौतियां हल करें और डेटा के सुचारू रूप से प्रवाह करें।
