इस लेख में हमने आपकी सभी महत्वपूर्ण शंकाओं के जवाब देने की कोशिश की है। किसी भी समस्या को हल करना शुरू करने का पहला कदम यह तय करना है कि कौन-सा सुरक्षा सिस्टम उपयोग में है। इसके लिए आप लोकप्रिय कैप्चा और एंटी-बॉट सुरक्षा सिस्टमों की सूची देख सकते हैं, जहाँ ऐसे दृश्य उदाहरण और मुख्य संकेत दिए गए हैं जो यह जल्दी समझने में मदद करते हैं कि आप किस समाधान के साथ काम कर रहे हैं।
यदि आपको पता चलता है कि आपकी साइट पर Amazon AWS WAF उपयोग हो रहा है, तो अगला कदम इसके गुणों और काम करने के तरीके को और विस्तार से समझना है। इसी लेख में आप Amazon AWS WAF सिस्टम को जोड़ने (इंटीग्रेट करने) की निर्देशिका भी देख सकते हैं, ताकि आप पूरी तरह समझ सकें कि यह आपकी साइट पर कैसे काम करता है। इससे आप न केवल मौजूदा सुरक्षा को बेहतर ढंग से समझ पाएँगे, बल्कि उसकी सपोर्ट और रखरखाव की सही योजना भी बना सकेंगे।
AWS WAF (Amazon Web Services Web Application Firewall) — यह अमेज़न का एक क्लाउड वेब फायरवॉल है, जो वेबसाइटों, API और वेब एप्लिकेशन को हमलों और हानिकारक ट्रैफ़िक से बचाता है। सरल शब्दों में, यह एक फ़िल्टर है जो आपकी वेबसाइट या API के सामने खड़ा होता है और यह तय करता है कि विज़िटर के किस ट्रैफ़िक को जाने देना है और किसे ब्लॉक करना है।
यदि साइट पर Challenge/CAPTCHA सक्षम है, तो विज़िटर को एक अलग सत्यापन पृष्ठ दिखाई दे सकता है। उसे एक कार्य पूरा करने के लिए कहा जाएगा, उदाहरण के लिए, एक श्रेणी से सभी छवियों का चयन करना, यह पुष्टि करने के लिए कि वह बॉट नहीं है।
AWS WAF द्वारा सुरक्षित संसाधनों का परीक्षण करते समय, यह सुनिश्चित करना महत्वपूर्ण है कि सुरक्षा सही ढंग से काम कर रही है और ठीक से इंटीग्रेटेड है।
आप मैन्युअल रूप से सुरक्षा के कामकाज की जांच कर सकते हैं:
सत्यापन पास करने के बाद, AWS WAF कुकीज़ (cookies) सेट करता है, जो पुष्टि करते हैं कि उपयोगकर्ता या क्लाइंट ने जांच पास कर ली है और विश्वसनीय ट्रैफ़िक की अनुमति है।
स्वचालित कैप्चा पहचान के लिए, आप विशेष सेवाओं का उपयोग कर सकते हैं, उदाहरण के लिए, CapMonster Cloud — एक उपकरण जो कैप्चा पैरामीटर स्वीकार करता है, उन्हें अपने सर्वर पर संसाधित करता है और तैयार कुकीज़ या टोकन वापस करता है। उपयोगकर्ता की भागीदारी के बिना जांच पास करने के लिए उन्हें ब्राउज़र में डाला जा सकता है।
API के माध्यम से CapMonster Cloud के साथ काम करने के सामान्य चरण:
AWS WAF को हल करने के अनुरोध में निम्नलिखित पैरामीटर निर्दिष्ट करना आवश्यक है:
type - AmazonTask;
websiteURL - मुख्य पृष्ठ का पता, जिस पर कैप्चा हल किया जाता है;
challengeScript - challenge.js का लिंक;
निम्नलिखित पैरामीटर window.gokuProps से लिए गए हैं (सभी स्ट्रिंग प्रकार के हैं):
captchaScript - captcha.js का लिंक (यदि आपके पास केवल Challenge है तो यह अनुपस्थित हो सकता है);
cookieSolution - डिफ़ॉल्ट रूप से false — प्रतिक्रिया में आपको "captcha_voucher" और "existing_token" प्राप्त होंगे। यदि आपको "aws-waf-token" कुकीज़ की आवश्यकता है, तो true निर्दिष्ट करें।;
userAgent - ब्राउज़र का User-Agent। Windows OS से केवल वास्तविक UA पास करें;
साथ ही इस कार्य के लिए आपके प्रॉक्सी (proxy) का उपयोग आवश्यक है:
proxyType :
proxyAddress - प्रॉक्सी IP पता IPv4/IPv6;
proxyPort - प्रॉक्सी पोर्ट;
proxyLogin - प्रॉक्सी सर्वर लॉगिन;
proxyPassword - प्रॉक्सी सर्वर पासवर्ड.
https://api.capmonster.cloud/createTask{
"clientKey": "API_KEY",
"task": {
"type": "AmazonTask",
"websiteURL": "https://example.com/index.html",
"websiteKey": "h15hX7brbaRTR...Za1_1",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36",
"captchaScript": "https://234324vgvc23.yejk.captcha-sdk.awswaf.com/234324vgvc23/jsapi.js",
"cookieSolution": true,
"proxyType": "http",
"proxyAddress": "8.8.8.8",
"proxyPort": 8080,
"proxyLogin": "proxyLoginHere",
"proxyPassword": "proxyPasswordHere"
}
}{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}{
"errorId":0,
"status":"ready",
"solution": {
"cookies": {
"aws-waf-token": "10115f5b-ebd8-45c7-851e-cfd4f6a82e3e:EAoAua1QezAhAAAA:dp7sp2rXIRcnJcmpWOC1vIu+yq/A3EbR6b6K7c67P49usNF1f1bt/Af5pNcZ7TKZlW+jIZ7QfNs8zjjqiu8C9XQq50Pmv2DxUlyFtfPZkGwk0d27Ocznk18/IOOa49Rydx+/XkGA7xoGLNaUelzNX34PlyXjoOtL0rzYBxMAQy0D1tn+Q5u97kJBjs5Mytqu9tXPIPCTSn4dfXv5llSkv9pxBEnnhwz6HEdmdJMdfur+YRW1MgCX7i3L2Y0/CNL8kd8CEhTMzwyoXekrzBM="
},
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
}
}CapMonster Cloud से प्राप्त डेटा (वैध AWS WAF कुकीज़) को ब्राउज़र संदर्भ या HTTP-क्लाइंट में डाला जा सकता है। इसके बाद, साइट अनुरोध को सत्यापित मानती है और अतिरिक्त जांच या चुनौती पृष्ठों (challenge pages) के बिना काम जारी रखने की अनुमति देती है।
स्वचालन और परीक्षण के लिए Puppeteer, Selenium या Playwright का उपयोग करना सुविधाजनक है — वे आपको इसकी अनुमति देते हैं:
इस तरह आप सुरक्षा के कामकाज की शुद्धता की जांच कर सकते हैं और सुनिश्चित कर सकते हैं कि साइट वैध AWS WAF कुकीज़ को सही ढंग से स्वीकार और संसाधित करती है।
महत्वपूर्ण: ये कोड उदाहरण cookieSolution=False का उपयोग करते हैं। यदि आपको परिणाम में कुकीज़ प्राप्त करने की आवश्यकता है, तो cookieSolution=True सेट करें।
// npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium
import { chromium } from "playwright";
import { CapMonsterCloudClientFactory, ClientOptions, AmazonRequest } from "@zennolab_com/capmonstercloud-client";
const API_KEY = "YOUR_API_KEY";
const CAPTCHA_URL = "https://example.com";
// प्रॉक्सी सेटिंग्स
const PROXY = {
proxyType: "http",
proxyAddress: "PROXY_HOST",
proxyPort: 1234,
proxyLogin: "PROXY_USER",
proxyPassword: "PROXY_PASS"
};
(async () => {
// 1) प्रॉक्सी के माध्यम से पृष्ठ खोलते हैं और AWS WAF पैरामीटर एकत्र करते हैं
const browser = await chromium.launch({
headless: false,
proxy: {
server: `http://${PROXY.proxyAddress}:${PROXY.proxyPort}`,
username: PROXY.proxyLogin,
password: PROXY.proxyPassword
}
});
const page = await browser.newPage();
await page.goto(CAPTCHA_URL, { waitUntil: "networkidle" });
// challenge और captcha स्क्रिप्ट लोड होने की प्रतीक्षा करते हैं
await page.waitForFunction(() => {
const scripts = Array.from(document.querySelectorAll("script")).map(s => s.src || "");
return scripts.some(src => src.includes("challenge")) && scripts.some(src => src.includes("captcha"));
});
// AWS WAF पैरामीटर निकालते हैं (key, context, iv, स्क्रिप्ट लिंक)
const params = await page.evaluate(() => {
const gokuProps = window.gokuProps || {};
const scripts = Array.from(document.querySelectorAll("script")).map(s => s.src || "");
return {
websiteKey: gokuProps.key || null,
context: gokuProps.context || null,
iv: gokuProps.iv || null,
challengeScript: scripts.find(src => src.includes("challenge")),
captchaScript: scripts.find(src => src.includes("captcha"))
};
});
await browser.close();
// 2) CapMonster Cloud के माध्यम से AWS WAF को हल करते हैं
const client = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: API_KEY }));
const req = new AmazonRequest({
websiteURL: CAPTCHA_URL,
websiteKey: params.websiteKey,
challengeScript: params.challengeScript,
captchaScript: params.captchaScript,
context: params.context,
iv: params.iv,
cookieSolution: true,
proxy: PROXY
});
const solved = await client.Solve(req);
const wafToken = solved.solution.cookies["aws-waf-token"];
// 3) aws-waf-token डालते हैं और पुराने को साफ करते हैं
const browser2 = await chromium.launch({
headless: false,
proxy: {
server: `http://${PROXY.proxyAddress}:${PROXY.proxyPort}`,
username: PROXY.proxyLogin,
password: PROXY.proxyPassword
}
});
const context2 = await browser2.newContext();
// आपके डोमेन के लिए पुराने aws-waf-token की सफाई
const existingCookies = await context2.cookies();
const filteredCookies = existingCookies.filter(c => !(c.name === "aws-waf-token" && c.domain.endsWith(".your-domain")));
await context2.clearCookies();
await context2.addCookies(filteredCookies);
// नया aws-waf-token सेट करना
await context2.addCookies([{
name: "aws-waf-token",
value: wafToken,
domain: ".your-domain",
path: "/",
httpOnly: false,
secure: true
}]);
const page2 = await context2.newPage();
const response = await page2.goto(CAPTCHA_URL, { waitUntil: "networkidle" });
console.log("Final page status:", response.status());
console.log("Final page URL:", page2.url());
await browser2.close();
})();
AWS WAF को सीधे साइट पर इंस्टॉल नहीं किया जा सकता है। यह केवल AWS संसाधनों के माध्यम से काम करता है:
चरण 1. AWS खाता बनाएं (यदि आपके पास नहीं है)
जाएं: https://portal.aws.amazon.com/billing/signup। खाता बनाएं > ईमेल और फोन की पुष्टि करें।
चरण 2. आप मानक या नए AWS WAF इंटरफ़ेस का उपयोग कर सकते हैं:
चरण 3. प्रोटेक्शन पैक (web ACL) बनाएं
यह आपके संसाधन के लिए सुरक्षा नियमों का सेट है।
चरण 4. एप्लिकेशन श्रेणी कॉन्फ़िगर करें:
Tell us about your app ब्लॉक में:
इन मापदंडों की आवश्यकता है ताकि AWS इष्टतम नियमों का सुझाव दे सके।
चरण 5. उन संसाधनों का चयन करें जिन्हें सुरक्षित किया जाएगा
यदि आपकी साइट CloudFront पर है > CloudFront distributions चुनें
यदि आपका बैकएंड ALB पर है > Regional resources चुनेंयदि API है > API Gateway REST API चुनेंआवश्यक संसाधन पर टिक मार्क लगाएं > Add पर क्लिक करें।
चरण 6. प्रारंभिक नियम सेट (starting rule set) चुनें।
AWS सुझाव देगा:
Recommended for you — शुरुआती लोगों के लिए सबसे अच्छा विकल्प
इसमें शामिल हैं:Next पर क्लिक करें।
चरण 7. कॉन्फ़िगरेशन (वैकल्पिक)
Customize protection pack (web ACL) स्क्रीन पर:
मुख्य पैरामीटर:
लॉगिंग (Logging)
चुनें कि लॉग कहाँ लिखना है:
(S3 + Athena अनुशंसित है)।
चरण 8. Web ACL बनाएं
क्लिक करें: Add protection pack (web ACL)
AWS नियम बनाएगा और उन्हें आपके संसाधन से लिंक करेगा।
सत्यापन (Verification)
यह सुनिश्चित करने के लिए कि सुरक्षा काम कर रही है:
किसी भी नियम में > Action > CAPTCHA / Challenge
यह बॉट ट्रैफ़िक को कम करता है और लॉगिन और फ़ॉर्म पृष्ठों की सुरक्षा करता है।
Rule groups अनुभाग में आप जोड़ सकते हैं:
अगर आपके पास ऐसा साइट आया है, जिस पर पहले से ही कोई कैप्चा या अन्य सुरक्षा प्रणाली लगी हुई है और आपके पास कोड तक पहुंच नहीं है — तो घबराने की ज़रूरत नहीं है! यह पता लगाना काफ़ी आसान है कि वास्तव में कौन-सी तकनीक इस्तेमाल हो रही है। काम की सही जाँच के लिए आप अलग-थलग टेस्ट वातावरण में CapMonster Cloud पहचान सेवा का उपयोग कर सकते हैं, ताकि यह सुनिश्चित हो सके कि टोकन प्रोसेसिंग का मेकैनिज़्म और वेरिफिकेशन लॉजिक ठीक तरह से काम कर रहे हैं।
Amazon AWS WAF के मामले में सिस्टम की पहचान करना, उसके व्यवहार का विश्लेषण करना और यह सुनिश्चित करना ही काफ़ी है कि सुरक्षा सही तरीके से काम कर रही है। इस लेख में हमने दिखाया है कि Amazon AWS WAF को कैसे पहचाना जाए और इसे जोड़ने या दोबारा कॉन्फ़िगर करने की निर्देशिका कहाँ मिलेगी, ताकि आप आत्मविश्वास के साथ सुरक्षा को बनाए रख सकें और इसके काम को नियंत्रित कर सकें।