
निष्क्रिय Laravel मिडलवेयर जो SQL इंजेक्शन, XSS, RCE, बॉट स्कैनर और 175+ आक्रमण पैटर्न का पता लगाता है और लॉग करता है। इसमें अंतर्निहित डैशबोर्ड, Slack अलर्ट, REST API और geo-enrichment शामिल हैं। यह IDS है, WAF नहीं।
<p align="center">
<a href="https://packagist.org/packages/jayanta/laravel-threat-detection"><img src="https://img.shields.io/packagist/v/jayanta/laravel-threat-detection.svg?style=flat-square" alt="Latest Version"></a>
<a href="https://github.com/jay123anta/laravel-threat-detection/actions/workflows/tests.yml"><img src="https://img.shields.io/github/actions/workflow/status/jay123anta/laravel-threat-detection/tests.yml?branch=main&style=flat-square&label=tests" alt="Tests"></a>
<a href="https://github.com/jay123anta/laravel-threat-detection/actions/workflows/tests.yml"><img src="https://img.shields.io/badge/PHPStan-level%205-brightgreen?style=flat-square" alt="PHPStan Level 5"></a>
<a href="https://github.com/jay123anta/laravel-threat-detection/actions/workflows/tests.yml"><img src="https://img.shields.io/badge/code%20style-Pint-orange?style=flat-square" alt="Code Style Pint"></a>
<a href="https://packagist.org/packages/jayanta/laravel-threat-detection"><img src="https://img.shields.io/packagist/dt/jayanta/laravel-threat-detection.svg?style=flat-square" alt="Total Downloads"></a>
<a href="https://packagist.org/packages/jayanta/laravel-threat-detection"><img src="https://img.shields.io/packagist/php-v/jayanta/laravel-threat-detection?style=flat-square" alt="PHP Version"></a>
<a href="https://github.com/jay123anta/laravel-threat-detection/blob/main/LICENSE"><img src="https://img.shields.io/packagist/l/jayanta/laravel-threat-detection.svg?style=flat-square" alt="License"></a>
</p>
# Laravel Threat Detection
**Laravel के लिए सुरक्षा निगरानी और हमला लॉगिंग। SQL injection,
XSS, RCE, directory traversal, bot scanners और `/wp-admin`-शैली की recon probes का पता लगाएं और लॉग करें —
हर शत्रुतापूर्ण अनुरोध पूर्ण एप्लिकेशन संदर्भ के साथ आपके डेटाबेस में रिकॉर्ड किया जाता है।
यह एक IDS है, WAF नहीं: यह कभी भी किसी अनुरोध को ब्लॉक, फ़िल्टर या संशोधित नहीं करता।**
<p align="center">
<img src="https://raw.githubusercontent.com/jay123anta/laravel-threat-detection/main/art/demo.gif" alt="Install the package, send three attacks — SQL injection, directory traversal, XSS — every one returns HTTP 200 because nothing is blocked, and all three are already counted in threat-detection:stats" width="100%">
</p>
### क्या आप यहाँ कुछ ऐसा देखकर आए हैं?
```
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 अलर्ट, geo-enrichment, और fail2ban/blocklist एक्सपोर्ट के साथ। कोई भी अनुरोध कभी ब्लॉक नहीं किया जाता। सिक्योरिटी कैमरा सोचें, ताला नहीं: यह आपको ठीक-ठीक दिखाता है कि कौन आपके रूट को प्रोब कर रहा है, कितनी बार, और किन तकनीकों के साथ।
> एक प्रोडक्शन ऐप से निकाला गया और वास्तविक ट्रैफ़िक पर परखा गया। 2,400+ टेस्ट, Laravel के अलावा कोई रनटाइम निर्भरता नहीं, और डिटेक्शन के लिए इंटरनेट कनेक्शन की आवश्यकता नहीं।
>
> अपग्रेड कर रहे हैं? देखें [UPGRADING.md](https://github.com/jay123anta/laravel-threat-detection/blob/main/UPGRADING.md)। योगदान कर रहे हैं? देखें [CONTRIBUTING.md](https://github.com/jay123anta/laravel-threat-detection/blob/main/CONTRIBUTING.md)।
## एक मिनट से भी कम समय में शुरू करें
```bash
composer require jayanta/laravel-threat-detection
php artisan vendor:publish --tag=threat-detection-migrations
php artisan migrate
```
फिर अपने `web` समूह में मिडलवेयर जोड़ें (Laravel 11+ पर `bootstrap/app.php` में एक पंक्ति,
या Laravel 10 पर `app/Http/Kernel.php` में) — पूरा स्निपेट नीचे [Quick Start](#quick-start) में है।
बस इतना ही; डिटेक्शन लाइव है।
```bash
php artisan threat-detection:doctor # confirms it is actually recording
```
---
## यह कहाँ फिट बैठता है: IDS बनाम WAF बनाम एज
यह पैकेज एक **पैसिव, एप्लिकेशन-स्तरीय IDS** है — यह देखता और रिकॉर्ड करता है, यह
ब्लॉक नहीं करता। इसे किसी WAF या एज सेवा के *साथ-साथ* रखा जाना है, न कि उसकी जगह लेना है। प्रत्येक परत कुछ ऐसा देखती है जो अन्य नहीं देख सकतीं:
| | **यह पैकेज** (ऐप IDS) | **WAF** (ModSecurity + OWASP CRS, Cloudflare WAF) | **एज / CDN** (Cloudflare) |
|---|:---:|:---:|:---:|
| दुर्भावनापूर्ण अनुरोधों को ब्लॉक करता है | ❌ केवल लॉग करता है | ✅ | ✅ |
| पूर्ण ऐप संदर्भ (सटीक URL, डिकोड किया गया पेलोड, प्रमाणित उपयोगकर्ता) | ✅ | ⚠️ आंशिक | ❌ |
| आपके DB में अंतर्निहित डैशबोर्ड + थ्रेट लॉग | ✅ | ⚠️ भिन्न होता है | ⚠️ केवल एज |
| ऐप-विशिष्ट डिटेक्शन (जैसे आधार / PAN / IFSC PII) | ✅ अंतर्निहित + कस्टम | ⚠️ अपने नियम लिखें | ⚠️ कस्टम नियम, प्लान-निर्भर |
| ऑफ़लाइन काम करता है / कोई बाहरी सेवा नहीं | ✅ | ⚠️ निर्भर करता है | ❌ |
| आपके सर्वर तक पहुँचने से पहले ट्रैफ़िक रोकता है | ❌ | ⚠️ केवल क्लाउड WAF | ✅ |
| सेटअप | `composer require`, माइग्रेट, एक मिडलवेयर लाइन | मध्यम–उच्च | निम्न–मध्यम |
| लागत | मुफ़्त, MIT | भिन्न होती है | मुफ़्त टियर + सशुल्क |
**संक्षेप में:** एज/WAF आपके दरवाज़े का ताला है; यह *अंदर* का सुरक्षा कैमरा है,
जिसके पास ऐप संदर्भ है ताकि यह बता सके कि किस रूट पर, किसके द्वारा, और कितनी बार
क्या आज़माया जा रहा है। इसका उपयोग वास्तविक निर्णयों को सूचित करने के लिए करें — fail2ban प्रतिबंध, रेट लिमिट,
जियो-ब्लॉकिंग — उन डेटा के साथ जो आपकी एज परत कभी नहीं देखती।
### यह जानबूझकर क्या नहीं है
- **WAF नहीं है।** यह कभी ब्लॉक, फ़िल्टर या अनुरोध को संशोधित नहीं करता। प्रवर्तन के लिए Cloudflare,
mod_security, या किसी वास्तविक WAF का उपयोग करें। (हैंड ऑफ करने के लिए कोई एज परत नहीं?
[ऑपरेटर-साइड हेल्पर्स](#acting-on-the-data-operator-side-blocking) पैकेज के निर्णयों को उजागर करते हैं ताकि आप अपना खुद का पाँच-लाइन ब्लॉकिंग मिडलवेयर लिख सकें —
प्रवर्तन कोड आपका रहता है, पैकेज का नहीं।)
- **सुरक्षित कोडिंग का विकल्प नहीं है।** पैरामीटराइज़्ड क्वेरी, इनपुट वैलिडेशन, और
आउटपुट एस्केपिंग आपके वास्तविक बचाव हैं। यह पैकेज मानता है कि आपका कोड पहले से
सुरक्षित है और आपको *दृश्यता* देता है, सुरक्षा नहीं।
- **एज सेवा नहीं है।** यदि आप Cloudflare को आगे रख सकते हैं, तो रखें — फिर एप्लिकेशन-स्तरीय
विवरण के लिए इसे जोड़ें जो एज सेवाएँ नहीं देख सकतीं।
- **पूर्ण डिटेक्टर नहीं है, और हो भी नहीं सकता।** पैटर्न मिलान उन हमलों को पकड़ता है जो
*ज्ञात हमलों जैसे दिखते हैं*। एक नई तकनीक, या पर्याप्त रूप से फिर से लिखा गया परिचित हमला,
बिना लॉग हुए निकल जाएगा — और आपको बताया नहीं जाएगा कि ऐसा हुआ। यहाँ मौन का अर्थ है
"कुछ मेल नहीं खाया", कभी नहीं "कुछ हुआ ही नहीं"। यह अपनी जगह वहाँ कमाता है जहाँ
उच्च-मात्रा, कम-प्रयास वाला ट्रैफ़िक होता है जो वास्तव में एक सार्वजनिक
Laravel ऐप पर पहुँचने वाले अधिकांश हिस्से का निर्माण करता है: स्कैनर, रेकॉन प्रोब, ऑफ़-द-शेल्फ इंजेक्शन स्ट्रिंग्स, क्रेडेंशियल
स्प्रे। एक शांत लॉग को साक्ष्य की अनुपस्थिति मानें, अनुपस्थिति का साक्ष्य नहीं।
### पहले ही दिन अपनी ही सामग्री पर फ़्लैग होने की अपेक्षा करें
एक अनट्यून्ड इंस्टॉल वैध सामग्री पर फ़ायर करता है, और आपको यह इंस्टॉल करने के बाद नहीं बल्कि पहले जानना चाहिए।
ये अनुमानित नहीं, मापे गए हैं। नीचे दी गई पंक्तियाँ
[`LegitimateTrafficCorpusTest`](https://github.com/jay123anta/laravel-threat-detection/blob/main/tests/Feature/LegitimateTrafficCorpusTest.php) द्वारा तय किए गए फ़्लोर का एक नमूना हैं;
प्रत्येक यह सूचीबद्ध करता है कि वह अनुरोध *सब कुछ* क्या लॉग करता है, और
[`ReadmeNoiseFloorTest`](https://github.com/jay123anta/laravel-threat-detection/blob/main/tests/Feature/ReadmeNoiseFloorTest.php) बिल्ड को विफल कर देता है
यदि कोई पंक्ति उस माप से मेल खाना बंद कर दे जो सूट उसके लिए मापता है।
<!-- noise-floor:start -->
| पूरी तरह से वैध अनुरोध | एक अनट्यून्ड इंस्टॉल क्या लॉग करता है |
|---|---|
| सर्च बॉक्स में टाइप किया गया `how to write a UNION SELECT in postgres` <!-- case: sql tutorial in a search box --> | `SQL Injection UNION` / high |
| `<script>window.dataLayer=[];</script>` युक्त एक ब्लॉग पोस्ट <!-- case: javascript snippet in a blog post --> | `XSS Script Tag` / high · `Command Chain Injection` / medium |
| पेस्ट किए गए `SELECT * FROM users WHERE id = 1` त्रुटि वाला एक सपोर्ट टिकट <!-- case: a pasted sql error in a support ticket --> | `SQLi Variant` / high · `SQL SELECT Query` / low |
| यह समझाने वाला दस्तावेज़ कि `../../etc/passwd` क्लासिक ट्रैवर्सल पेलोड है <!-- case: a traversal explainer in documentation --> | `Directory Traversal` / medium · `Sensitive File Access` / medium |
| एक वास्तविक भारतीय मोबाइल नंबर और PAN एकत्र करने वाला प्रोफ़ाइल फ़ॉर्म <!-- case: a profile form collecting genuine indian pii --> | `PAN Number Detected` / high · `Bank Account Number Detected` / high · `Mobile Number Detected` / low |
<!-- noise-floor:end -->
**इनमें से कोई भी बग नहीं है।** `<script>` युक्त एक ब्लॉग पोस्ट, बाइट-दर-बाइट, एक
स्टोर्ड-XSS पेलोड है; `UNION SELECT` की खोज एक प्रयास से अप्रभेद्य है; एक दस-अंकीय मोबाइल नंबर भी एक प्रशंसनीय बैंक खाता संख्या है। इन्हें अलग करने वाला
कुछ भी नहीं है सिवाय एप्लिकेशन संदर्भ के, और कोई भी पैटर्न इंजन आपके लिए वह
संदर्भ प्रदान नहीं कर सकता।
इसे प्रदान करना एक-पंक्ति का कॉन्फ़िग परिवर्तन है: उस फ़ील्ड का नाम बताएं जो वैध रूप से
ऐसी सामग्री रखता है `safe_fields` में (या `safe_paths`, नेस्टेड JSON के भीतर एक पथ के लिए) और
यह अब स्कैन नहीं होगा। यही वह स्विच है जो ऊपर की पंक्तियों को शांत करता है — और यह
एक वास्तविक सौदा है, क्योंकि उस फ़ील्ड के माध्यम से दिया गया हमला भी अनदेखा रह जाता है।
`content_paths` और `relaxed` मोड अलग उपकरण हैं। वे निम्न- और
मध्यम-गंभीरता के शोर को गिरा देते हैं, और **जानबूझकर उच्च-गंभीरता मिलानों को रिकॉर्ड करना जारी रखते हैं** —
इसलिए वे इस तालिका में उच्च पंक्तियों को शांत नहीं करेंगे, डिज़ाइन के अनुसार। कब किसका उपयोग करना है, यह देखने के लिए
[Reducing False Positives](#reducing-false-positives) देखें।
**यदि आपका ऐप रिच टेक्स्ट, कोड नमूने, या सर्च क्वेरी स्वीकार करता है, तो आउटपुट का मूल्यांकन करने से पहले ऐसा करें।**
डिफ़ॉल्ट जानबूझकर शोर-भरा-लेकिन-ईमानदार है, न कि
शांत-और-अपूर्ण: एक ज्ञात मिलान को शांत करना उस मिलान को खोजने से आसान है जो
कभी फ़ायर ही नहीं हुआ।
### तो आप वास्तव में इसका उपयोग क्या करते हैं?
एक ऐसे डिटेक्टर के बारे में सबसे आम सवाल जो कभी ब्लॉक नहीं करता। चार उत्तर, बढ़ते प्रयास के क्रम में:
| आप चाहते हैं | उपयोग करें | प्रयास |
|---|---|---|
| देखें कि आप पर क्या हमला हो रहा है | [डैशबोर्ड](#dashboard) या `threat-detection:stats` | कोई नहीं, यह पहले से चल रहा है |
| फ़ायरवॉल पर बार-बार अपराध करने वालों को प्रतिबंधित करें | [`threat-detection:export-fail2ban`](#artisan-commands) — cron में पाइप करें | एक पंक्ति |
| वेब सर्वर पर अस्वीकार करें | [`threat-detection:export-blocklist`](#artisan-commands) → nginx/apache निर्देश | एक पंक्ति |
| ऐप में अनुरोधों को अस्वीकार करें | [ऑपरेटर-साइड हेल्पर्स](#acting-on-the-data-operator-side-blocking) — `isBlocklisted()`, `isDdosThresholdExceeded()` | आपके अपने मिडलवेयर की ~10 पंक्तियाँ |
| वास्तविक समय में प्रतिक्रिया दें | [`ThreatDetected` इवेंट](#threatdetected-event) — Telegram, SIEM, PagerDuty | एक लिसनर |
पैकेज इंटेलिजेंस प्रदान करता है; आप इनकार प्रदान करते हैं। यह विभाजन
जानबूझकर है — आपके ऐप में रहने वाला प्रवर्तन कोड वह कोड है जिसे आप पढ़, परीक्षण और बंद कर सकते हैं, और इसका मतलब है कि एक डिटेक्शन बग कभी आपकी साइट को नीचे नहीं गिरा सकता।
### यह अन्य Laravel सुरक्षा पैकेजों से कैसे तुलना करता है
ये अलग-अलग समस्याओं को हल करते हैं और अच्छी तरह से मिलते हैं — तालिका सही उपकरण चुनने के बारे में है, जीतने के बारे में नहीं।
| पैकेज | यह क्या करता है | ब्लॉक करता है? | इसका उपयोग कब करें |
|---|---|:---:|---|
| **यह पैकेज** | प्रत्येक अनुरोध को 150+ पैटर्न के विरुद्ध स्कैन करता है, पूर्ण ऐप संदर्भ के साथ लॉग करता है | ❌ | आप *देखना* चाहते हैं कि आपके ऐप पर क्या आज़माया जा रहा है |
| `spatie/laravel-honeypot` | छिपा हुआ फ़ॉर्म फ़ील्ड जो स्पैम बॉट्स को पकड़ता है | ✅ केवल फ़ॉर्म | आपके पास सार्वजनिक फ़ॉर्म हैं जिन पर स्पैम हो रहा है |
| `graham-campbell/security` | इनपुट से XSS-जैसा मार्कअप हटाता है | ✅ परिवर्तित करता है | आप सरल इनपुट सैनिटाइज़िंग चाहते हैं |
| `spatie/laravel-csp` | Content-Security-Policy हेडर भेजता है | ✅ ब्राउज़र | आप ब्राउज़र क्या लोड करता है इसे सीमित करना चाहते हैं |
| `laravel/fortify` + रेट लिमिट | ऑथ थ्रॉटलिंग और लॉकआउट | ✅ | आपको लॉगिन पर ब्रूट-फ़ोर्स सुरक्षा चाहिए |
| Cloudflare / mod_security | एज WAF, आपके ऐप से पहले ब्लॉक करता है | ✅ | आप ट्रैफ़िक को आने से पहले रोकना चाहते हैं |
ईमानदार सारांश: एक हनीपॉट फ़ॉर्म स्पैम पकड़ता है, एक WAF एज पर ज्ञात-खराब ट्रैफ़िक को ब्लॉक करता है, और CSP ब्राउज़र को सीमित करता है। **इनमें से कोई भी आपको यह नहीं बताता कि किसी हमलावर ने आपके विशिष्ट रूट्स के विरुद्ध क्या आज़माया, पेलोड डिकोड किए गए और प्रमाणित उपयोगकर्ता संलग्न।** यही अंतराल यह भरता है — और यही कारण है कि
पैकेज जानबूझकर ब्लॉक नहीं करता: आप इसे उपरोक्त सभी के साथ चला सकते हैं
बिना किसी के एक-दूसरे से टकराए।
---
## आवश्यकताएँ
- PHP 8.2+ (Laravel 13 के लिए PHP 8.3+ आवश्यक है)
- Laravel 10.x, 11.x, 12.x, या 13.x
- Laravel द्वारा समर्थित कोई भी डेटाबेस (MySQL, PostgreSQL, SQLite, SQL Server)
- कोई भी कैश ड्राइवर - **किसी Redis या क्यू वर्कर की आवश्यकता नहीं**। Redis/Memcached केवल
वैकल्पिक DDoS जाँच को सक्षम करने के लिए *अनुशंसित* है (जो गैर-परमाणु ड्राइवरों पर स्वतः अक्षम हो जाती है)। क्यूड राइट्स ऑप्ट-इन हैं और डिफ़ॉल्ट रूप से बंद हैं।
---
## यह कैसे काम करता है
1. एक मिडलवेयर प्रत्येक आने वाले HTTP अनुरोध को स्कैन करता है
2. अनुरोध को SQL इंजेक्शन, XSS, RCE, फ़ाइल ट्रैवर्सल, SSRF, LDAP, XPath, SSTI, और अधिक को कवर करने वाले 158 रेगेक्स पैटर्न के विरुद्ध जाँचा जाता है
3. यदि कोई थ्रेट पैटर्न मेल खाता है, तो IP, URL, थ्रेट प्रकार, गंभीरता स्तर, और एक विश्वास स्कोर के साथ आपकी `threat_logs` डेटाबेस तालिका में एक रिकॉर्ड लिखा जाता है
4. वैकल्पिक रूप से, उच्च-गंभीरता वाले खतरों के लिए एक Slack अलर्ट भेजा जाता है
5. अनुरोध सामान्य रूप से आगे बढ़ता है - **कुछ भी ब्लॉक नहीं होता**
डिटेक्शन के लिए किसी इंटरनेट कनेक्शन की आवश्यकता नहीं है।
---
## त्वरित शुरुआत
### 1. पैकेज इंस्टॉल करें
```bash
composer require jayanta/laravel-threat-detection
```
### 2. माइग्रेशन प्रकाशित करें और उन्हें चलाएँ
> **यह चरण आवश्यक है।** इसके बिना, पैकेज खतरों का पता तो लगाएगा लेकिन उन्हें डेटाबेस में संग्रहीत नहीं कर सकेगा। यदि आप इस चरण को छोड़ देते हैं, तो आपकी `threat_logs` तालिका मौजूद नहीं होगी और सभी डिटेक्शन चुपचाप खो जाएँगे (आपको केवल `storage/logs/laravel.log` में त्रुटियाँ दिखाई देंगी)।
```bash
php artisan vendor:publish --tag=threat-detection-migrations
php artisan migrate
```
यह दो तालिकाएँ बनाता है: `threat_logs` (पता लगाए गए खतरों को संग्रहीत करता है) और `threat_exclusion_rules` (गलत सकारात्मक नियमों को संग्रहीत करता है)।
**सत्यापित करें कि तालिकाएँ बनाई गई हैं:**
```bash
php artisan migrate:status
```
`create_threat_logs_table`, `add_confidence_to_threat_logs_table`, और `create_threat_exclusion_rules_table` को देखें - सभी को `Ran` दिखाना चाहिए।
### 3. मिडलवेयर को रजिस्टर करें
मिडलवेयर वह है जो अनुरोधों को स्कैन करता है। आपको इसे अपने `web` मिडलवेयर समूह में जोड़ना होगा।
**यदि आप Laravel 11 या 12 का उपयोग करते हैं** - `bootstrap/app.php` खोलें:
```php
->withMiddleware(function (Middleware $middleware) {
$middleware->web(append: [
\JayAnta\ThreatDetection\Http\Middleware\ThreatDetectionMiddleware::class,
]);
})
```
> **अपना Laravel संस्करण कैसे जाँचें:** अपने टर्मिनल में `php artisan --version` चलाएँ।
**यदि आप Laravel 10 का उपयोग करते हैं** - `app/Http/Kernel.php` खोलें:
```php
protected $middlewareGroups = [
'web' => [
// ... existing middleware
\JayAnta\ThreatDetection\Http\Middleware\ThreatDetectionMiddleware::class,
],
];
```
### 4. (वैकल्पिक) कॉन्फ़िग फ़ाइल प्रकाशित करें
```bash
php artisan vendor:publish --tag=threat-detection-config
```
पैकेज समझदार डिफ़ॉल्ट्स के साथ काम करता है। कॉन्फ़िग प्रकाशित करने से आप डिटेक्शन पैटर्न, संवेदनशीलता मोड, Slack सूचनाएँ, और बहुत कुछ अनुकूलित कर सकते हैं। यदि आप इस चरण को छोड़ देते हैं, तो भी सब कुछ काम करता रहता है।
**बस इतना ही।** आपका ऐप अब खतरों का पता लगा रहा है।
---
## सत्यापित करें कि यह काम करता है
इंस्टॉलेशन के बाद, एक परीक्षण खतरा ट्रिगर करें और पुष्टि करें कि यह लॉग किया गया था।
### चरण 1: अपना ऐप शुरू करें
```bash
php artisan serve
```
### चरण 2: अपने ब्राउज़र में एक परीक्षण URL खोलें
अपने ऐप में **किसी भी मौजूदा रूट** (आपका होमपेज, एक उत्पाद पृष्ठ, आदि) में एक दुर्भावनापूर्ण क्वेरी पैरामीटर जोड़ें। उदाहरण के लिए:
**SQL इंजेक्शन:**
```
http://localhost:8000/?q=' UNION SELECT * FROM users--
```
**XSS (क्रॉस-साइट स्क्रिप्टिंग):**
```
http://localhost:8000/?q=<script>alert(1)</script>
```
**डायरेक्टरी ट्रैवर्सल:**
```
http://localhost:8000/?file=../../etc/passwd
```
**RCE (रिमोट कोड एक्ज़ीक्यूशन):**
```
http://localhost:8000/?cmd=system('ls -la')
```
**Shellshock (CVE-2014-6271):**
```
http://localhost:8000/?cmd=() { :;}; /bin/bash
```
**Windows कमांड इंजेक्शन:**
```
http://localhost:8000/?cmd=powershell -c whoami
```
**DROP TABLE (SQL DDL):**
```
http://localhost:8000/?q=DROP TABLE users
```
---
[Read more](https://github.com/jay123anta/laravel-threat-detection)