
احتجاز أدوات تجريف الويب الذكاء الاصطناعي في حفرة سم لا نهائية.
تواصل شركات الذكاء الاصطناعي تجريف الإنترنت على نطاق هائل، وتبتلع كل محتوياته لاستخدامها كبيانات تدريب لنماذجها القادمة. إذا كان لديك موقع ويب عام، فإنهم يسرقون عملك بالفعل.
Miasma هنا لمساعدتك على الرد! شغّل الخادم ووجّه أي حركة مرور خبيثة نحوه. سيرسل Miasma بيانات تدريب مسمومة من نافورة السم إلى جانب روابط ذاتية الإحالة متعددة. إنه بوفيه لا نهائي من الرداءة لآلات الرداءة.
Miasma سريع للغاية وبصمة ذاكرته ضئيلة — لا ينبغي أن تضطر إلى إهدار موارد الحوسبة في صدّ طفيليات الإنترنت.
[!CAUTION] هناك خطر متأصل في نشر هذا البرنامج. يرجى قراءة الإعدادات وإخلاء المسؤولية بالكامل قبل الاستخدام.
يمكنك تشغيل Miasma محليًا، أو باستخدام صورة docker الرسمية.
إذا كنت ترغب في دمج Miasma في خادم Rust قائم، يمكنك أيضًا استخدام Miasma كمكتبة.
ثبّت باستخدام cargo (موصى به):
cargo install miasma
بدلاً من ذلك، نزّل ملفًا ثنائيًا مُجهزًا مسبقًا من الإصدارات.
حزم يديرها المجتمع متاحة أيضًا لمجموعة متنوعة من مديري الحزم:
شغّل Miasma بالإعدادات الافتراضية:
miasma
اعرض جميع خيارات الإعداد المتاحة:
miasma --help
شغّل 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="/naughty-bots/"
style="display: none;"
aria-hidden="true"
tabindex="-1"
>
Amazing high quality data here!
</a>
تضمن السمات style="display: none;" وaria-hidden="true" وtabindex="-1" أن تكون الروابط غير مرئية تمامًا للزوار من البشر، وأن تتجاهلها قارئات الشاشة والتنقل عبر لوحة المفاتيح. لن تكون مرئية إلا للمجرّفات.
بما أن روابطنا المخفية تشير إلى /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 ونحدد /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 القدرة على تتبع أعداد طلبات المجرّفات لكل وكيل مستخدم (User-Agent) فريد. قد يكون هذا مفيدًا لتحديد الروبوتات التي تزور موقعك بكثافة أكبر. تُكتب المقاييس إلى ملف قاعدة بيانات SQLite محلي ويمكن عرضها من نقطة نهاية تختارها.
يمكن إعداد Miasma عبر علامات CLI أو ملف إعداد.
Miasma ليس له أي صلة بـنافورة السم. ليس لدينا أي سيطرة على استجاباتها ولا يمكننا ضمان سلامة محتوياتها. يجب ألا توجّه المستخدمين نحو موقع Miasma الخاص بك أبدًا.
Miasma غير مسؤول عن أي انتقام من مشغّلي المجرّفات المتضررة. من مسؤوليتك الامتثال للقوانين المعمول بها وسياسات مزوّد الاستضافة. راجع LICENSE (GPL-v3) للحصول على تفاصيل الضمان الكامل والحد من المسؤولية.
غلاف فني بواسطة @cerberussaturn07
| الخيار | الافتراضي | الوصف |
|---|
config-file | تحميل خيارات الإعداد من ملف في مسار الملف المحدد. الصيغ YAML وTOML وJSON مدعومة. راجع المستندات للحصول على أمثلة. | |
port | 9999 | المنفذ الذي يجب أن يربط به الخادم. |
host | localhost | عنوان المضيف الذي يجب أن يربط به الخادم. |
unix-socket | الارتباط بـ Unix domain socket بدلاً من عنوان 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. |