
laravel-threat-detection v1.7.2
وسيط Laravel سلبي يكتشف ويسجّل حقن SQL وXSS وRCE وماسحات البوتات وأكثر من 175 نمط هجوم. يتضمن لوحة تحكم مدمجة، وتنبيهات Slack، وواجهة REST API، وإثراءً جغرافيًا. نظام IDS، وليس WAF.
Laravel Threat Detection
مراقبة أمنية وتسجيل الهجمات لـ Laravel. اكتشف وسجّل حقن SQL،
XSS، RCE، اجتياز المسارات، ماسحات الروبوتات وفحوصات الاستطلاع من نوع /wp-admin —
كل طلب عدائي يُسجَّل في قاعدة بياناتك مع سياق التطبيق الكامل.
إنه نظام كشف تسلل (IDS)، وليس جدار حماية تطبيقات (WAF): لا يحجب أو يفلتر أو يعدّل أي طلب أبدًا.
هل أنت هنا لأنك رأيت شيئًا كهذا؟
GET /wp-admin/setup-config.php 404 — on a site that isn't WordPress
GET /.env 404 — someone wants your database password
GET /?id=1' UNION SELECT password FROM 200 — SQL injection against a real route
GET /phpmyadmin/index.php 404 — scanning for an admin panel
تلك الطلبات تصل بالفعل إلى تطبيق Laravel الخاص بك. يُظهر سجل الوصول لديك عنوان URL ورمز الحالة، ولا شيء آخر — ليس الحمولة المفكوكة، ولا أي من مساراتك تم استهدافه، ولا ما إذا كان نفس عنوان IP قد جرّب أربعين شيئًا آخر في هذه الساعة.
تجيب هذه الحزمة عن تلك الأسئلة. أضفها إلى أي تطبيق Laravel 10–13 وتبدأ بفحص كل طلب HTTP مقابل أكثر من 150 نمط هجوم، مع تقييم كل تطابق حسب درجة الثقة وكتابته إلى قاعدة بياناتك — مع لوحة تحكم مدمجة، وتنبيهات Slack، وإثراء جغرافي، وتصديرات fail2ban/blocklist. لا يتم حظر أي طلب أبدًا. فكّر في كاميرا مراقبة، وليس قفلًا: فهي تُظهر لك بالضبط من يتحسّس مساراتك، وكم مرة، وبأي تقنيات.
مستخرجة من تطبيق إنتاجي ومُجرّبة على حركة مرور حقيقية. أكثر من 2,400 اختبار، بلا تبعيات وقت تشغيل تتجاوز Laravel نفسه، وبلا حاجة لاتصال بالإنترنت للكشف.
هل تقوم بالترقية؟ راجع UPGRADING.md. هل تريد المساهمة؟ راجع CONTRIBUTING.md.
ابدأ في أقل من دقيقة
composer require jayanta/laravel-threat-detection
php artisan vendor:publish --tag=threat-detection-migrations
php artisan migrate
ثم أضف الوسيط إلى مجموعة web الخاصة بك (سطر واحد في bootstrap/app.php على Laravel 11+،
أو app/Http/Kernel.php على Laravel 10) — المقتطف الكامل في البدء السريع أدناه.
هذا كل شيء؛ الكشف أصبح نشطًا.
php artisan threat-detection:doctor # confirms it is actually recording
أين يندرج: IDS مقابل WAF مقابل الحافة
هذه الحزمة هي نظام كشف تسلل سلبي على مستوى التطبيق — يراقب ويسجل، ولا يحجب. الغرض منها أن تكون بجانب WAF أو خدمة الحافة، لا أن تحل محلها. كل طبقة ترى شيئًا لا تستطيع الطبقات الأخرى رؤيته:
| هذه الحزمة (app IDS) | WAF (ModSecurity + OWASP CRS، Cloudflare WAF) | الحافة / CDN (Cloudflare) | |
|---|---|---|---|
| حجب الطلبات الخبيثة | ❌ تسجيل فقط | ✅ | ✅ |
| سياق التطبيق الكامل (الرابط الدقيق، الحمولة المفكوكة، المستخدم الموثق) | ✅ | ⚠️ جزئي | ❌ |
| لوحة تحكم مدمجة + سجل تهديدات في قاعدة بياناتك | ✅ | ⚠️ يختلف | ⚠️ الحافة فقط |
| كشوفات خاصة بالتطبيق (مثل Aadhaar / PAN / IFSC PII) | ✅ مدمج + مخصص | ⚠️ اكتب قواعدك بنفسك | ⚠️ قواعد مخصصة، تعتمد على الخطة |
| يعمل دون اتصال / بدون خدمة خارجية | ✅ | ⚠️ يعتمد | ❌ |
| يوقف حركة المرور قبل وصولها إلى خادمك | ❌ | ⚠️ WAF السحابي فقط | ✅ |
| الإعداد | composer require، ترحيل، سطر middleware واحد | متوسط–عالٍ | منخفض–متوسط |
| التكلفة | مجاني، MIT | يختلف | طبقة مجانية + مدفوع |
الخلاصة: الحافة/WAF هو القفل على الباب؛ هذه هي كاميرا المراقبة بالداخل، مع سياق التطبيق لتخبرك بالضبط ما يُحاول على أي مسار، ومن قِبَل من، وبأي تكرار. استخدمها لتغذية قرارات حقيقية — حظر fail2ban، حدود المعدل، الحظر الجغرافي — ببيانات لا تراها طبقة الحافة أبدًا.
ما هي ليست كذلك عمدًا
- ليست WAF. لا تحجب أو تصفّي أو تعدّل أي طلب أبدًا. استخدم Cloudflare، mod_security، أو WAF حقيقي للتنفيذ. (لا توجد طبقة حافة لتسليمها المهمة؟ إن مساعدات جانب المشغّل تكشف قرارات الحزمة حتى تكتب middleware الحجب الخاص بك في خمسة أسطر — كود التنفيذ يبقى لك، لا للحزمة.)
- ليست بديلاً عن البرمجة الآمنة. الاستعلامات المُعاملة (parameterized queries)، والتحقق من المدخلات، و تهريب المخرجات هي دفاعاتك الفعلية. تفترض هذه الحزمة أن كودك آمن بالفعل وتمنحك رؤية، لا حماية.
- ليست خدمة حافة. إذا كان بإمكانك وضع Cloudflare في المقدمة، افعل — ثم أضف هذه للتفاصيل على مستوى التطبيق التي لا تستطيع خدمات الحافة رؤيتها.
- ليست كاشفًا كاملاً، ولا يمكن أن تكون كذلك. مطابقة الأنماط تلتقط الهجمات التي تبدو مثل هجمات معروفة. تقنية جديدة، أو تقنية مألوفة أُعيدت صياغتها بما يكفي، ستمر دون تسجيل — ولن يُخبرك أحد أنها فعلت. الصمت هنا يعني "لم يتطابق شيء"، وليس أبدًا "لم يحدث شيء". ما يجعلها تستحق مكانها هو حركة المرور عالية الحجم منخفضة الجهد التي تشكل معظم ما يضرب تطبيق Laravel عامًا فعلاً: الماسحات، مجسّات الاستطلاع، سلاسل الحقن الجاهزة، رشّ بيانات الاعتماد. تعامل مع سجل هادئ كغياب دليل، لا كدليل على الغياب.
توقّع أن تُعلّم على محتواك الخاص من اليوم الأول
تثبيت غير مضبوط يُطلق على محتوى مشروع، ويجب أن تعرف ذلك قبل
التثبيت لا بعده. هذه قياسات فعلية، لا افتراضات. الصفوف
أدناه عيّنة من الحد الأدنى الذي يثبّته
LegitimateTrafficCorpusTest;
كل صف يسرد كل ما يسجله ذلك الطلب، و
ReadmeNoiseFloorTest يُفشل
البناء إذا توقف أي صف عن مطابقة ما تقيسه المجموعة له.