
क्लाइंट-साइड बॉट डिटेक्शन लाइब्रेरी जिसमें 28 भारित मॉड्यूल, व्यवहार विश्लेषण, ब्राउज़र फिंगरप्रिंटिंग, हनीपॉट्स और सर्वर-साइड सत्यापन शामिल हैं। हेडलेस ब्राउज़र, Selenium, Puppeteer, Playwright और स्टील्थ ऑटोमेशन फ्रेमवर्क का पता लगाता है।
क्लाइंट-साइड बॉट और ऑटोमेशन पहचान लाइब्रेरी जिसमें भारित स्कोरिंग, व्यवहार विश्लेषण, ब्राउज़र फ़िंगरप्रिंटिंग और कॉन्फ़िगरेबल थ्रेशोल्ड शामिल हैं। हेडलेस ब्राउज़र, Selenium, Puppeteer, Playwright, CDP-आधारित टूल और स्टील्थ ऑटोमेशन फ्रेमवर्क का पता लगाता है।
v2.1.0 — एंटी-डिटेक्शन हनीपॉट, GPU-स्थिर कैनवास फ़िंगरप्रिंटिंग, उन्नत व्यवहार विश्लेषण, आलसी आरंभीकरण, सर्वर-साइड छेड़छाड़ का पता लगाना, अनुरोध फ़िंगरप्रिंट बाइंडिंग और दर सीमा।
human (मानव), suspicious (संदिग्ध), bot (बॉट) जिनमें संबंधित घर्षण क्रियाएँ (monitor (निगरानी), challenge (चुनौती), block (अवरोध)) हैंब्राउज़र आपका सर्वर
┌──────────────────────────┐ ┌──────────────────────┐
│ कलेक्टर (सिंगलटन) │ POST │ Express मिडलवेयर │
│ ├─ 28 डिटेक्शन मॉड्यूल │ सिग्नल │ ├─ NonceManager │
│ ├─ BehaviorTracker │ + नॉन्स │ ├─ RateLimiter │
│ ├─ HoneypotTraps │───────────▶│ ├─ TamperDetector │
│ ├─ स्टैक ट्रेस ट्रैप │ │ ├─ computeVerdict() │
│ └─ IframeContext │ │ └─ Proof-of-Work │
│ │ फैसला │ │
│ ↓ collect() → │ + प्रूफ │ रिटर्न करता है: │
│ DetectionResult[] │◀───────────│ { verdict, score, │
└──────────────────────────┘ │ confidence, proof, │
│ tamperScore } │
└──────────────────────┘
│
▼
सत्र-गेटेड एंडपॉइंट
(लॉगिन, चेकआउट, आदि)
प्रूफ को मान्य करता है
एक्सेस देने से पहले
मुख्य सिद्धांत: ब्राउज़र केवल कच्चे DetectionResult[] सिग्नल एकत्र करता है। सर्वर एक गुप्त भार तालिका का उपयोग करके अंतिम फैसले की गणना करता है। क्लाइंट-कंप्यूटेड फैसलों पर कभी भरोसा नहीं किया जाता।
npm install
npm run build
dist/ में आउटपुट:
botdetect.min.js (पॉलीफिल के साथ, ~151 KB)botdetect-clean.min.js (केवल आधुनिक ब्राउज़र के लिए, ~74 KB)<script src="/path/to/botdetect.min.js"></script>
<script>
BotDetect.collector.enableTraps();
BotDetect.collector.enableBehavioralTracking();
BotDetect.collector.enableHoneypots();
</script>
cd server
npm install express cors express-session
node example-integration.js
async function onLogin() {
const { nonce } = await (await fetch('/api/botdetect/nonce')).json();
BotDetect.collector.setNonce(nonce);
const signals = await BotDetect.collector.collect();
const resp = await fetch('/api/botdetect/verify', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ signals, nonce })
});
const { verdict, score, proof, friction } = await resp.json();
document.getElementById('botdetect-proof').value = proof;
document.getElementById('login-form').submit();
}
app.post('/api/login', (req, res) => {
const bd = req.session.botdetect;
if (!bd) return res.status(403).json({ error: 'no_verification' });
if (bd.verdict === 'bot') return res.status(403).json({ error: 'access_denied' });
if (bd.verdict === 'suspicious') return challengeCaptcha(req, res);
res.json({ success: true });
});
import Collector from './collector/Collector';
// या वैश्विक के माध्यम से: BotDetect.collector
| Method (विधि) | Returns (रिटर्न) | Description (विवरण) |
|---|---|---|
getInstance(config?) | Collector | सिंगलटन एक्सेसर |
configure(config) | void | रनटाइम पर कॉन्फ़िग अपडेट करें |
getConfig() | CollectorConfig | वर्तमान कॉन्फ़िगरेशन |
init() | void | आलसी-आरंभ ट्रैप, ट्रैकिंग, हनीपॉट |
enableTraps() | void | DOM API पर स्टैक ट्रेस ट्रैप स्थापित करें |
enableBehavioralTracking() | void | माउस/कीबोर्ड/स्क्रॉल निगरानी शुरू करें |
enableHoneypots(container?) | void | हनीपॉट फ़ील्ड स्थापित करें |
collect() | Promise<DetectionResult[]> | सभी डिटेक्शन चलाएं |
setNonce(nonce) | void | सर्वर-जारी नॉन्स संग्रहीत करें |
getSessionId() | string | अद्वितीय सत्र पहचानकर्ता |
getFingerprint() | string | सत्र फ़िंगरप्रिंट हैश |
resetBehavioralData() | void | व्यवहार डेटा साफ़ करें |
destroy() | void | सभी श्रोताओं और DOM तत्वों को साफ़ करें |
import Detector from './detector/Detector';
| Method (विधि) | Returns (रिटर्न) | Description (विवरण) |
|---|---|---|
getInstance(config?) | Detector | सिंगलटन एक्सेसर |
configure(config) | void | कॉन्फ़िग अपडेट करें |
analyze(results) | DetectionVerdict | स्कोर + वर्गीकृत करें (केवल स्थानीय डीबग) |
handleError(error) | DetectionVerdict | विफलता पर फ़ॉलबैक फैसला |
चेतावनी:
analyze()पूरी तरह से ब्राउज़र में चलता है। इसके आउटपुट का उपयोग कभी भी उत्पादन निर्णयों के लिए न करें।
interface DetectionResult {
name: string; // मॉड्यूल नाम
score: number; // 0.0 – 1.0
weight: number; // 1 – 10 (महत्व)
detail?: string; // मानव-पठनीय विवरण
}
interface DetectionVerdict {
verdict: 'bot' | 'suspicious' | 'human';
score: number; // 0.0 – 1.0
confidence: number; // 0.0 – 1.0
signals: DetectionResult[];
threshold: number;
friction: 'monitor' | 'challenge' | 'block';
}
interface CollectorConfig {
detectionTimeoutMs: number; // प्रति-मॉड्यूल टाइमआउट (डिफ़ॉल्ट: 3000)
enableTraps: boolean;
enableBehavioralTracking: boolean;
enableHoneypots: boolean;
thresholds: { strict: number; balanced: number; relaxed: number };
}
const { createBotDetectEndpoint } = require('./server');