अपडेट पर वापस जाएँ
New releaseSep 20, 2026

miasma v0.4.3

एआई वेब स्क्रैपर्स को एक अंतहीन जहरीले गड्ढे में फंसाएं।

साझा करें

🌀 Miasma

No AI crates.io downloads Docker Pulls GitHub commits since latest release

Web crawlers getting stuck in a cloud of poison miasma.

AI कंपनियाँ लगातार अत्यंत बड़े पैमाने पर इंटरनेट को स्क्रैप करती रहती हैं, अपने अगले मॉडलों के लिए प्रशिक्षण डेटा के रूप में उपयोग करने के लिए इसकी सभी सामग्री को निगल जाती हैं। यदि आपकी कोई सार्वजनिक वेबसाइट है, तो वे पहले से ही आपका काम चुरा रहे हैं।

मियास्मा आपकी वापसी में मदद करने के लिए यहाँ है! सर्वर शुरू करें और किसी भी दुर्भावनापूर्ण ट्रैफ़िक को उसकी ओर इंगित करें। मियास्मा पॉइज़न फाउंटेन से ज़हरीला प्रशिक्षण डेटा भेजेगा, साथ ही कई स्व-संदर्भित लिंक भी। यह स्लॉप मशीनों के लिए स्लॉप का एक अंतहीन भोज है।

मियास्मा बिजली की तरह तेज़ है और इसका मेमोरी फुटप्रिंट न्यूनतम है - आपको इंटरनेट के जोंकों को दूर करने में कंप्यूट संसाधनों को बर्बाद नहीं करना चाहिए।

[!CAUTION] इस सॉफ़्टवेयर को तैनात करने में अंतर्निहित जोखिम है। कृपया उपयोग से पहले कॉन्फ़िगरेशन और अस्वीकरण को पूरी तरह पढ़ें।

उपयोग

आप मियास्मा को स्थानीय रूप से या आधिकारिक डॉकर इमेज के साथ चला सकते हैं।

यदि आप मियास्मा को किसी मौजूदा Rust सर्वर में शामिल करना चाहते हैं, तो आप मियास्मा को लाइब्रेरी के रूप में भी उपयोग कर सकते हैं

स्थानीय रूप से चलाना

cargo के साथ इंस्टॉल करें (अनुशंसित):

cargo install miasma

वैकल्पिक रूप से, रिलीज़ से पहले से बना बाइनरी डाउनलोड करें।

विभिन्न पैकेज प्रबंधकों के लिए समुदाय-प्रबंधित पैकेज भी उपलब्ध हैं:

Packaging status

डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ मियास्मा शुरू करें:

miasma

सभी उपलब्ध कॉन्फ़िगरेशन विकल्प देखें:

miasma --help

डॉकर के साथ चलाना

आधिकारिक डॉकर इमेज का उपयोग करके मियास्मा चलाएँ:

docker run --rm -p 9999:9999 austinweeks/miasma:latest

वही कॉन्फ़िगरेशन फ़्लैग पास करें जो आप स्थानीय रूप से उपयोग करेंगे:

docker run --rm -p 9999:9999 austinweeks/miasma:latest \
    --link-prefix '/naughty-bots' \
    --max-in-flight 30

या, डॉकर कंपोज़ क्लस्टर के भीतर चलाएँ:

services:
  miasma:
    image: austinweeks/miasma:latest
    command: ["--link-prefix", "/naughty-bots", "--max-in-flight", "30"]
    ports:
      - 9999:9999

स्क्रैपर्स को कैसे फँसाएँ

आइए मियास्मा के साथ स्क्रैपर्स को फँसाने के लिए सर्वर सेट करने का एक उदाहरण देखें। हम स्क्रैपर ट्रैफ़िक को निर्देशित करने के लिए अपने सर्वर के पथ के रूप में /naughty-bots चुनेंगे। हम अपने सर्वर के रिवर्स प्रॉक्सी के रूप में Nginx का उपयोग करेंगे, लेकिन कई अलग-अलग सेटअपों के साथ भी यही परिणाम प्राप्त किया जा सकता है।

जब हम पूरा कर लेंगे, तो स्क्रैपर्स इस तरह फँस जाएँगे:

Flow chart depicting cycle of trapped scrapers.

छिपे हुए लिंक एम्बेड करना

हमारी साइट के भीतर, हम /naughty-bots की ओर ले जाने वाले कुछ छिपे हुए लिंक शामिल करेंगे।

<a
  href="https://github.com/austin-weeks/miasma/blob/main/naughty-bots"
  style="display: none;"
  aria-hidden="true"
  tabindex="-1"
>
  Amazing high quality data here!
</a>

style="display: none;", aria-hidden="true", और tabindex="-1" विशेषताएँ यह सुनिश्चित करती हैं कि लिंक मानव आगंतुकों के लिए पूरी तरह से अदृश्य हों और स्क्रीन रीडर और कीबोर्ड नेविगेशन द्वारा अनदेखा कर दिए जाएँ। वे केवल स्क्रैपर्स को दिखाई देंगे।

हमारे Nginx प्रॉक्सी को कॉन्फ़िगर करना

चूँकि हमारे छिपे हुए लिंक /naughty-bots/ की ओर इंगित करते हैं, हम इस पथ को मियास्मा को अनुरोध प्रॉक्सी करने के लिए कॉन्फ़िगर करेंगे। मान लें कि हम मियास्मा को पोर्ट 9855 पर चला रहे हैं।

हम स्क्रैपर के यूज़र एजेंट के आधार पर आक्रामक दर सीमा भी सेट करेंगे ताकि यह सुनिश्चित हो सके कि हम गलती से खुद पर DDoS न कर दें।

http {
  # Reserve 8MB memory for tracking user agents
  limit_req_zone $http_user_agent zone=miasma:8m rate=1r/s;

  server {
    location = /naughty-bots {
      port_in_redirect off;
      return 301 /naughty-bots/;
    }
    location /naughty-bots/ {
      # Rate limit via the 'miasma' zone with no queueing
      limit_req_status 429;
      limit_req zone=miasma burst=5 nodelay;

      # Proxy requests to Miasma
      proxy_pass http://localhost:9855/;
    }
  }
}

यह कॉन्फ़िगरेशन /naughty-bots पथ की सभी विविधताओं को पकड़ लेगा -> /naughty-bots, /naughty-bots/, /naughty-bots/12345, आदि।

मियास्मा चलाएँ

अंत में, हम मियास्मा शुरू करेंगे और लिंक प्रीफ़िक्स के रूप में /naughty-bots निर्दिष्ट करेंगे। यह मियास्मा को /naughty-bots/ से लिंक शुरू करने का निर्देश देता है, जो यह सुनिश्चित करता है कि स्क्रैपर्स हमारे Nginx प्रॉक्सी के माध्यम से ठीक से मियास्मा तक पहुँचें।

आइए अधिकतम इन-फ़्लाइट कनेक्शनों की संख्या 50 तक सीमित करें। 50 कनेक्शनों पर, हम 50-60 MB अधिकतम मेमोरी उपयोग की अपेक्षा कर सकते हैं। ध्यान दें कि इस सीमा से अधिक कोई भी अनुरोध कतार में जोड़े जाने के बजाय तुरंत 429 प्रतिक्रिया प्राप्त करेगा।

हम मियास्मा को स्क्रैपर्स के Accept-Encoding हेडर की परवाह किए बिना सभी प्रतिक्रियाओं को gzip संपीड़ित करने के लिए भी बाध्य करेंगे। चूँकि gzip की गई प्रतिक्रियाएँ काफी छोटी होती हैं, यह हमें एग्रेस लागत कम करने में मदद करेगा।

हालाँकि हम स्क्रैपर्स को हमेशा के लिए फँसाए रख सकते हैं, हम लिंक काउंट और अधिकतम गहराई विकल्पों का उपयोग करेंगे ताकि स्क्रैपर्स को ~100K ज़हरीले पृष्ठों का उपभोग करने के बाद जाने दिया जाए। इस सेटअप के साथ, मियास्मा प्रति स्क्रैपर कुल मिलाकर लगभग 250MB डेटा भेजेगा।

miasma --link-prefix '/naughty-bots' -p 9855 -c 50 --force-gzip --link-count 5 --max-depth 8

आनंद लें!

आइए तैनात करें और देखें कि दुर्व्यवहार करने वाले बॉट हमारी अंतहीन स्लॉप मशीन से लालच से खाते हैं!

robots.txt

अपने robots.txt के माध्यम से अच्छे व्यवहार वाले बॉट्स और सर्च इंजनों को मियास्मा से बचाना सुनिश्चित करें!

User-agent: *
Disallow: /naughty-bots

मेट्रिक्स

मियास्मा प्रत्येक अद्वितीय User-Agent के लिए स्क्रैपर अनुरोध गणना को ट्रैक करने की क्षमता प्रदान करता है। यह पहचानने के लिए उपयोगी हो सकता है कि कौन से बॉट आपकी साइट पर सबसे अधिक हमला कर रहे हैं। मेट्रिक्स एक स्थानीय SQLite डेटाबेस फ़ाइल में लिखे जाते हैं और आपके द्वारा चुने गए एंडपॉइंट पर देखे जा सकते हैं।

कॉन्फ़िगरेशन

मियास्मा को CLI फ़्लैग या कॉन्फ़िग फ़ाइल के माध्यम से कॉन्फ़िगर किया जा सकता है।

विकल्पडिफ़ॉल्टविवरण
config-fileनिर्दिष्ट फ़ाइल पथ पर एक फ़ाइल से कॉन्फ़िगरेशन विकल्प लोड करें। YAML, TOML, और JSON प्रारूप समर्थित हैं। उदाहरणों के लिए docs देखें।
port9999वह पोर्ट जिससे सर्वर को बाइंड करना चाहिए।
hostlocalhostवह होस्ट पता जिससे सर्वर को बाइंड करना चाहिए।
unix-socketTCP पते के बजाय Unix डोमेन सॉकेट से बाइंड करें। केवल Unix-जैसे सिस्टम पर उपलब्ध।
max-in-flight500अधिकतम अनुमेय इन-फ़्लाइट अनुरोधों की संख्या। इन-फ़्लाइट से अधिक होने पर प्राप्त अनुरोधों को 429 प्रतिक्रिया मिलेगी। मियास्मा का मेमोरी उपयोग सीधे इन-फ़्लाइट अनुरोधों की संख्या के साथ बढ़ता है - यदि मेमोरी उपयोग चिंता का विषय है तो इसे कम मान पर सेट करें।
link-prefix/स्व-निर्देशित लिंक के लिए प्रीफ़िक्स। यह वह पथ होना चाहिए जहाँ आप मियास्मा होस्ट करते हैं, जैसे /naughty-bots
link-count5प्रत्येक प्रतिक्रिया पृष्ठ में शामिल करने के लिए स्व-निर्देशित लिंक की संख्या।
max-depthnoneस्क्रैपर के निर्दिष्ट गहराई तक पहुँचने के बाद लिंक उत्पन्न करना बंद करें। यह आपको वांछित मात्रा में ज़हर परोसने के बाद स्क्रैपर्स को काटने की अनुमति देता है। सक्रिय स्क्रैपर्स की संख्या को प्रबंधनीय स्तर तक कम रखने के लिए इसे link-count के साथ मिलाकर उपयोग करें।
force-gzipfalseक्लाइंट के Accept-Encoding हेडर की परवाह किए बिना हमेशा प्रतिक्रियाओं को gzip करें। संपीड़न को बाध्य करना एग्रेस लागत कम करने में मदद कर सकता है।
unsafe-allow-htmlfalseज़हर स्रोत की प्रतिक्रियाओं में HTML वर्णों को एस्केप न करें। अनपेक्षित क्लाइंट-साइड JavaScript निष्पादन को रोकने के लिए एस्केपिंग डिफ़ॉल्ट रूप से सक्षम है। इस विकल्प का सावधानी से उपयोग करें।
poison-sourcehttps://rnsaffn.com/poison2/?mask=0ज़हरीले प्रशिक्षण डेटा के लिए प्रॉक्सी स्रोत।
no-poison-cachefalseज़हर स्रोत प्रतिक्रिया कैशिंग अक्षम करें।
metrics-db-pathमेट्रिक्स डेटा संग्रहीत करने के लिए SQLite डेटाबेस फ़ाइल का पथ। यदि पहले से कोई मौजूद नहीं है तो मियास्मा इस स्थान पर एक डेटाबेस बनाएगा।
metrics-usernameमियास्मा के मेट्रिक्स पृष्ठ तक पहुँचने के लिए आवश्यक बेसिक ऑथ उपयोगकर्ता नाम।
metrics-passwordमियास्मा के मेट्रिक्स पृष्ठ तक पहुँचने के लिए आवश्यक बेसिक ऑथ पासवर्ड।
metrics-endpoint/metricsवह एंडपॉइंट जिस पर मियास्मा के मेट्रिक्स परोसे जाएँगे।

अस्वीकरण

मियास्मा पॉइज़न फाउंटेन से संबद्ध नहीं है। हमारा इसकी प्रतिक्रियाओं पर कोई नियंत्रण नहीं है और इसकी सामग्री की सुरक्षा की गारंटी नहीं दे सकते। आपको कभी भी उपयोगकर्ताओं को अपने मियास्मा स्थान की ओर निर्देशित नहीं करना चाहिए।

मियास्मा प्रभावित स्क्रैपर्स के ऑपरेटरों से किसी भी प्रतिशोध के लिए ज़िम्मेदार नहीं है। लागू कानूनों और होस्टिंग प्रदाता नीतियों का पालन करना आपकी ज़िम्मेदारी है। पूर्ण वारंटी और देयता सीमा विवरण के लिए LICENSE (GPL-v3) देखें।


कवर आर्ट @cerberussaturn07 द्वारा

श्रेणियाँ