
miasma v0.4.3
احتجاز أدوات تجريف الويب الذكاء الاصطناعي في حفرة سم لا نهائية.
🌀 Miasma
تقوم شركات الذكاء الاصطناعي بجمع البيانات من الإنترنت باستمرار وعلى نطاق هائل، حيث تبتلع كل محتوياته لاستخدامها كبيانات تدريب لنماذجها القادمة. إذا كان لديك موقع ويب عام، فإنهم يسرقون عملك بالفعل.
جاء Miasma لمساعدتك على الرد! قم بتشغيل الخادم ووجّه أي حركة مرور خبيثة نحوه. سيرسل Miasma بيانات تدريب مسمومة من نافورة السم إلى جانب روابط متعددة ذاتية الإشارة. إنها وليمة لا نهاية لها من الرديء لآلات الرديء.
Miasma سريع كالبرق وله بصمة ذاكرة ضئيلة - لا ينبغي أن تضطر إلى إهدار موارد الحوسبة لصد علائق الإنترنت.
[!CAUTION] هناك مخاطر كامنة في نشر هذا البرنامج. يرجى قراءة الإعدادات وإخلاء المسؤولية بالكامل قبل الاستخدام.
الاستخدام
يمكنك تشغيل Miasma محليًا، أو باستخدام صورة docker الرسمية.
إذا كنت ترغب في دمج Miasma في خادم Rust موجود، يمكنك أيضًا استخدام Miasma كمكتبة.
التشغيل محليًا
قم بالتثبيت باستخدام cargo (موصى به):
cargo install miasma
بدلاً من ذلك، قم بتنزيل ملف ثنائي مُجمّع مسبقًا من الإصدارات.
تتوفر أيضًا حزم يديرها المجتمع لمجموعة متنوعة من مديري الحزم:
ابدأ Miasma بالإعدادات الافتراضية:
miasma
اعرض جميع خيارات الإعدادات المتاحة:
miasma --help
التشغيل باستخدام Docker
شغّل Miasma باستخدام صورة docker الرسمية:
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
أو شغّله داخل مجموعة docker compose:
services:
miasma:
image: austinweeks/miasma:latest
command: ["--link-prefix", "/naughty-bots", "--max-in-flight", "30"]
ports:
- 9999:9999
كيفية الإيقاع ببرامج الكشط
لنستعرض مثالاً على إعداد خادم للإيقاع ببرامج الكشط باستخدام Miasma. سنختار /naughty-bots كمسار خادمنا لتوجيه حركة مرور برامج الكشط. سنستخدم Nginx كوكيل عكسي لخادمنا، لكن يمكن تحقيق نفس النتيجة بإعدادات مختلفة كثيرة.
عندما ننتهي، ستُحتجز برامج الكشط هكذا:
تضمين روابط مخفية
داخل موقعنا، سنضمّن بعض الروابط المخفية المؤدية إلى /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/، سنقوم بإعداد هذا المسار لتمرير الطلبات إلى Miasma. لنفترض أننا نشغّل Miasma على المنفذ 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، إلخ.
تشغيل Miasma
أخيرًا، سنبدأ Miasma ونحدد /naughty-bots كبادئة الرابط. هذا يوجّه Miasma لبدء الروابط بـ /naughty-bots/، مما يضمن توجيه برامج الكشط بشكل صحيح عبر وكيل Nginx الخاص بنا عائدة إلى Miasma.
لنحدد الحد الأقصى لعدد الاتصالات الجارية بـ 50. عند 50 اتصالاً، يمكننا توقع ذروة استخدام ذاكرة تبلغ 50-60 ميجابايت. لاحظ أن أي طلبات تتجاوز هذا الحد ستتلقى فورًا استجابة 429 بدلاً من إضافتها إلى قائمة انتظار.
سنجبر أيضًا Miasma على ضغط gzip لجميع الاستجابات بغض النظر عن ترويسة Accept-Encoding الخاصة ببرامج الكشط. بما أن الاستجابات المضغوطة بـ gzip أصغر بكثير، سيساعدنا هذا في تقليل تكاليف الخروج.
بينما يمكننا إبقاء برامج الكشط محتجزة إلى الأبد، سنستخدم خيارات عدد الروابط والعمق الأقصى للسماح لبرامج الكشط بالمغادرة بعد استهلاكها ~100 ألف صفحة مسمومة. مع هذا الإعداد، سيرسل Miasma حوالي 250 ميجابايت من إجمالي البيانات لكل برنامج كشط.
miasma --link-prefix '/naughty-bots' -p 9855 -c 50 --force-gzip --link-count 5 --max-depth 8
استمتع!
لننشر ونشاهد بينما تلتهم الروبوتات المسيئة بشراهة من آلة الرديء اللانهائية الخاصة بنا!
robots.txt
تأكد من حماية الروبوتات حسنة السلوك ومحركات البحث من Miasma عبر robots.txt!
User-agent: *
Disallow: /naughty-bots
المقاييس
يقدم Miasma القدرة على تتبع أعداد طلبات برامج الكشط لكل وكيل مستخدم فريد. يمكن أن يكون هذا مفيدًا لتحديد أي الروبوتات تضرب موقعك بأكبر قدر. تُكتب المقاييس إلى ملف قاعدة بيانات SQLite محلي ويمكن عرضها في نقطة نهاية تختارها.
الإعدادات
يمكن إعداد Miasma عبر أعلام CLI أو ملف إعدادات.
| الخيار | الافتراضي | الوصف |
|---|---|---|
config-file | تحميل خيارات الإعدادات من ملف في مسار الملف المحدد. تُدعم صيغ YAML وTOML وJSON. راجع docs للأمثلة. | |
port | 9999 | المنفذ الذي يجب أن يرتبط به الخادم. |
host | localhost | عنوان المضيف الذي يجب أن يرتبط به الخادم. |
unix-socket | الارتباط بمقبس نطاق Unix بدلاً من عنوان TCP. متاح فقط على الأنظمة الشبيهة بـ Unix. | |
max-in-flight | 500 | الحد الأقصى لعدد الطلبات الجارية المسموح بها. الطلبات المستلمة عند تجاوز الحد الجاري ستتلقى استجابة 429. يتناسب استخدام Miasma للذاكرة طرديًا مع عدد الطلبات الجارية - اضبط هذا على قيمة أقل إذا كان استخدام الذاكرة مصدر قلق. |
link-prefix | / | بادئة الروابط ذاتية التوجيه. يجب أن يكون هذا المسار الذي تستضيف فيه Miasma، مثل /naughty-bots. |
link-count | 5 | عدد الروابط ذاتية التوجيه المراد تضمينها في كل صفحة استجابة. |
max-depth | none | إيقاف توليد الروابط بمجرد وصول برنامج الكشط إلى العمق المحدد. يتيح لك هذا قطع برامج الكشط بعد تقديم كمية مرغوبة من السم. استخدم هذا بالاقتران مع link-count لإبقاء أعداد برامج الكشط النشطة عند مستوى يمكن التحكم فيه. |
force-gzip | false | دائمًا ضغط الاستجابات بـ gzip بغض النظر عن ترويسة Accept-Encoding الخاصة بالعميل. يمكن أن يساعد فرض الضغط في تقليل تكاليف الخروج. |
unsafe-allow-html | false | عدم تهريب أحرف HTML في استجابات مصدر السم. التهريب مُفعّل افتراضيًا لمنع تنفيذ JavaScript غير المقصود من جانب العميل. استخدم هذا الخيار بحذر. |
poison-source | https://rnsaffn.com/poison2/?mask=0 | مصدر وكيل لبيانات التدريب المسمومة. |
no-poison-cache | false | تعطيل تخزين استجابات مصدر السم مؤقتًا. |
metrics-db-path | مسار ملف قاعدة بيانات SQLite لتخزين بيانات المقاييس. سينشئ Miasma قاعدة بيانات في هذا الموقع إذا لم تكن موجودة بالفعل. | |
metrics-username | اسم مستخدم المصادقة الأساسية المطلوب للوصول إلى صفحة مقاييس Miasma. | |
metrics-password | كلمة مرور المصادقة الأساسية المطلوبة للوصول إلى صفحة مقاييس Miasma. | |
metrics-endpoint | /metrics | نقطة النهاية التي ستُقدَّم عندها مقاييس Miasma. |
إخلاء المسؤولية
Miasma غير مرتبط بـ نافورة السم. ليس لدينا سيطرة على استجاباتها ولا يمكننا ضمان سلامة محتوياتها. يجب ألا توجّه المستخدمين أبدًا نحو موقع Miasma الخاص بك.
Miasma غير مسؤول عن أي انتقام من مشغلي برامج الكشط المتأثرة. تقع على عاتقك مسؤولية الامتثال للقوانين المعمول بها وسياسات مزود الاستضافة. راجع LICENSE (GPL-v3) للحصول على تفاصيل الضمان الكامل وحدود المسؤولية.
فن الغلاف بواسطة @cerberussaturn07