इस लेख में हमने आपकी सभी महत्वपूर्ण शंकाओं के जवाब देने की कोशिश की है। किसी भी समस्या को हल करना शुरू करने का पहला कदम यह तय करना है कि कौन-सा सुरक्षा सिस्टम उपयोग में है। इसके लिए आप लोकप्रिय कैप्चा और एंटी-बॉट सुरक्षा सिस्टमों की सूची देख सकते हैं, जहाँ ऐसे दृश्य उदाहरण और मुख्य संकेत दिए गए हैं जो यह जल्दी समझने में मदद करते हैं कि आप किस समाधान के साथ काम कर रहे हैं।
यदि आपको पता चलता है कि आपकी साइट पर Amazon AWS WAF उपयोग हो रहा है, तो अगला कदम इसके गुणों और काम करने के तरीके को और विस्तार से समझना है। इसी लेख में आप Amazon AWS WAF सिस्टम को जोड़ने (इंटीग्रेट करने) की निर्देशिका भी देख सकते हैं, ताकि आप पूरी तरह समझ सकें कि यह आपकी साइट पर कैसे काम करता है। इससे आप न केवल मौजूदा सुरक्षा को बेहतर ढंग से समझ पाएँगे, बल्कि उसकी सपोर्ट और रखरखाव की सही योजना भी बना सकेंगे।
AWS WAF (Amazon Web Services Web Application Firewall) — यह अमेज़न का एक क्लाउड वेब फायरवॉल है, जो वेबसाइटों, API और वेब एप्लिकेशन को हमलों और हानिकारक ट्रैफ़िक से बचाता है। सरल शब्दों में, यह एक फ़िल्टर है जो आपकी वेबसाइट या API के सामने खड़ा होता है और यह तय करता है कि विज़िटर के किस ट्रैफ़िक को जाने देना है और किसे ब्लॉक करना है।
यदि साइट पर Challenge/CAPTCHA सक्षम है, तो विज़िटर को एक अलग सत्यापन पृष्ठ दिखाई दे सकता है। उसे एक कार्य पूरा करने के लिए कहा जाएगा, उदाहरण के लिए, एक श्रेणी से सभी छवियों का चयन करना, यह पुष्टि करने के लिए कि वह बॉट नहीं है।
CapMonster Cloud के माध्यम से AWS WAF को कैसे हल करें
AWS WAF द्वारा सुरक्षित संसाधनों का परीक्षण करते समय, यह सुनिश्चित करना महत्वपूर्ण है कि सुरक्षा सही ढंग से काम कर रही है और ठीक से इंटीग्रेटेड है।
आप मैन्युअल रूप से सुरक्षा के कामकाज की जांच कर सकते हैं:
- फ़ॉर्म या संसाधन वाला पृष्ठ खोलें और सुनिश्चित करें कि AWS WAF अनुरोधों पर सही प्रतिक्रिया दे रहा है।
- ऐसी क्रियाएं करने का प्रयास करें जो WAF द्वारा प्रतिबंधित हो सकती हैं (उदाहरण के लिए, बड़े पैमाने पर अनुरोध, संदिग्ध हेडर) — सर्वर को ऐसे अनुरोधों को ब्लॉक करना चाहिए या त्रुटि (error) वापस करनी चाहिए।
सत्यापन पास करने के बाद, 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 :
- http - सामान्य HTTP/HTTPS प्रॉक्सी;
- https - इस विकल्प को आज़माएं यदि «http» काम नहीं करता है (कुछ कस्टम प्रॉक्सी के लिए आवश्यक);
- socks4 - SOCKS4 प्रकार का प्रॉक्सी;
- socks5 - SOCKS5 प्रकार का प्रॉक्सी;
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/150.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/150.0.0.0 Safari/537.36"
}
}CapMonster Cloud से प्राप्त डेटा (वैध AWS WAF कुकीज़) को ब्राउज़र संदर्भ या HTTP-क्लाइंट में डाला जा सकता है। इसके बाद, साइट अनुरोध को सत्यापित मानती है और अतिरिक्त जांच या चुनौती पृष्ठों (challenge pages) के बिना काम जारी रखने की अनुमति देती है।
स्वचालन और परीक्षण के लिए Puppeteer, Selenium या Playwright का उपयोग करना सुविधाजनक है — वे आपको इसकी अनुमति देते हैं:
- AWS WAF द्वारा सुरक्षित पृष्ठ खोलें;
- प्राप्त कुकीज़ को ब्राउज़र संदर्भ में जोड़ें;
- वैध सत्यापन के साथ पृष्ठ को रीफ्रेश करें;
- आगे की क्रियाएं करें (फ़ॉर्म सबमिट करें, पृष्ठों पर जाएं, कार्यक्षमता का परीक्षण करें)।
इस तरह आप सुरक्षा के कामकाज की शुद्धता की जांच कर सकते हैं और सुनिश्चित कर सकते हैं कि साइट वैध 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 संसाधनों के माध्यम से काम करता है:
- Amazon CloudFront (मुख्य और सबसे अच्छा विकल्प) — CDN, जिसके माध्यम से किसी भी साइट को सुरक्षित किया जा सकता है। तेजी से, विश्व स्तर पर काम करता है और लगभग सभी मामलों के लिए उपयुक्त है।
- Application Load Balancer (ALB) — AWS के भीतर सर्वर साइटों, API और कंटेनरों के लिए उपयोग किया जाता है। यदि आपका बैकएंड EC2, ECS, EKS में काम करता है — तो WAF को ALB पर रखें।
- API Gateway — REST और WebSocket API की सुरक्षा। SPA, मोबाइल एप्लिकेशन और माइक्रोसर्विसेज के लिए उपयुक्त।
- AWS AppSync (GraphQL API)
- Amazon Cognito (लॉगिन/रजिस्ट्रेशन)
- AWS App Runner (कंटेनर एप्लिकेशन)
- AWS Amplify Hosting (फ्रंटएंड होस्टिंग)
- AWS Verified Access (आंतरिक अनुप्रयोगों तक पहुंच)
चरण 1. AWS खाता बनाएं (यदि आपके पास नहीं है)
जाएं: https://portal.aws.amazon.com/billing/signup। खाता बनाएं > ईमेल और फोन की पुष्टि करें।
चरण 2. आप मानक या नए AWS WAF इंटरफ़ेस का उपयोग कर सकते हैं:
- AWS कंसोल पर जाएं
- AWS WAF खोलें। बाएं मेनू में Try the new experience पर क्लिक करें (यदि ऑफ़र किया जाता है)।
चरण 3. प्रोटेक्शन पैक (web ACL) बनाएं
यह आपके संसाधन के लिए सुरक्षा नियमों का सेट है।
- बाएं मेनू में चुनें: Resources & protection packs (Web ACLs)
- Add protection pack (web ACL) पर क्लिक करें।
चरण 4. एप्लिकेशन श्रेणी कॉन्फ़िगर करें:
Tell us about your app ब्लॉक में:
- App category — Web / API / Both चुनें
- Traffic source — ट्रैफ़िक कहाँ से आ रहा है (web, API या दोनों)
इन मापदंडों की आवश्यकता है ताकि AWS इष्टतम नियमों का सुझाव दे सके।
चरण 5. उन संसाधनों का चयन करें जिन्हें सुरक्षित किया जाएगा
- Add resources पर क्लिक करें
- चुनें कि आप क्या कनेक्ट कर रहे हैं:
यदि आपकी साइट CloudFront पर है > CloudFront distributions चुनें
यदि आपका बैकएंड ALB पर है > Regional resources चुनेंयदि API है > API Gateway REST API चुनेंआवश्यक संसाधन पर टिक मार्क लगाएं > Add पर क्लिक करें।
चरण 6. प्रारंभिक नियम सेट (starting rule set) चुनें।
AWS सुझाव देगा:
Recommended for you — शुरुआती लोगों के लिए सबसे अच्छा विकल्प
इसमें शामिल हैं:- बुनियादी सुरक्षा
- SQLi और XSS के खिलाफ नियम
- IP reputation lists (IP प्रतिष्ठा सूचियां)
- Bot Control (वैकल्पिक)
- web/API के लिए नियम
Next पर क्लिक करें।
चरण 7. कॉन्फ़िगरेशन (वैकल्पिक)
Customize protection pack (web ACL) स्क्रीन पर:
मुख्य पैरामीटर:
- Default action:
- Allow all except blocked — आमतौर पर इसे चुना जाता है
- Block all except allowed — यदि साइट बंद (closed) है
- Default rate limits: अनुरोधों की संख्या पर सीमा (DDoS L7 mitigation)
- IP addresses: व्हाइट/ब्लैक लिस्ट
- Country specific origins: देशों के अनुसार ट्रैफ़िक प्रतिबंध
लॉगिंग (Logging)
चुनें कि लॉग कहाँ लिखना है:
- CloudWatch
- S3
- Firehose
(S3 + Athena अनुशंसित है)।
चरण 8. Web ACL बनाएं
क्लिक करें: Add protection pack (web ACL)
AWS नियम बनाएगा और उन्हें आपके संसाधन से लिंक करेगा।
सत्यापन (Verification)
यह सुनिश्चित करने के लिए कि सुरक्षा काम कर रही है:
- WAF खोलें > अपना web ACL चुनें
- Monitoring पर जाएं
- देखें:
- ट्रैफ़िक ग्राफ़
- ब्लॉक किए गए अनुरोध
- नमूना अनुरोध (sample requests)
- CAPTCHA या Challenge सक्षम करें
किसी भी नियम में > Action > CAPTCHA / Challenge
यह बॉट ट्रैफ़िक को कम करता है और लॉगिन और फ़ॉर्म पृष्ठों की सुरक्षा करता है।
- Managed Rule Groups जोड़ें
Rule groups अनुभाग में आप जोड़ सकते हैं:
- AWS Managed
- Bot Control
- Account takeover prevention
- Marketplace rules (F5, Imperva, Fortinet)
- Shield Advanced के साथ लिंक करें। DDoS (L3–L7) से सुरक्षा के लिए।
समर्थित कैप्चा
अगर आपके पास ऐसा साइट आया है, जिस पर पहले से ही कोई कैप्चा या अन्य सुरक्षा प्रणाली लगी हुई है और आपके पास कोड तक पहुंच नहीं है — तो घबराने की ज़रूरत नहीं है! यह पता लगाना काफ़ी आसान है कि वास्तव में कौन-सी तकनीक इस्तेमाल हो रही है। काम की सही जाँच के लिए आप अलग-थलग टेस्ट वातावरण में CapMonster Cloud पहचान सेवा का उपयोग कर सकते हैं, ताकि यह सुनिश्चित हो सके कि टोकन प्रोसेसिंग का मेकैनिज़्म और वेरिफिकेशन लॉजिक ठीक तरह से काम कर रहे हैं।
Amazon AWS WAF के मामले में सिस्टम की पहचान करना, उसके व्यवहार का विश्लेषण करना और यह सुनिश्चित करना ही काफ़ी है कि सुरक्षा सही तरीके से काम कर रही है। इस लेख में हमने दिखाया है कि Amazon AWS WAF को कैसे पहचाना जाए और इसे जोड़ने या दोबारा कॉन्फ़िगर करने की निर्देशिका कहाँ मिलेगी, ताकि आप आत्मविश्वास के साथ सुरक्षा को बनाए रख सकें और इसके काम को नियंत्रित कर सकें।