
निर्भरताओं और कोड से आपूर्ति-श्रृंखला, स्लॉप्स्क्वाटिंग और टाइपोस्क्वाटिंग हमलों से बचाता है।
cargo install sloppy-joe
LiteLLM आपूर्ति श्रृंखला हमला The LiteLLM supply chain attack (मार्च 2026) ने 97M मासिक डाउनलोड वाले एक पैकेज से समझौता किया। हमलावरों ने प्रकाशन क्रेडेंशियल चुराए, दुर्भावनापूर्ण संस्करण धकेले जिन्होंने SSH कुंजियाँ, क्लाउड क्रेडेंशियल और K8s रहस्य चुराए। sloppy-joe का डिफ़ॉल्ट 72-घंटे का संस्करण आयु गेट दोनों जहरीले संस्करणों को ब्लॉक कर देता — वे घंटों के भीतर खोजे गए, गेट खुलने से काफी पहले। यदि आप CI में
sloppy-joe checkचलाते हैं, तो यह हमला विफल हो जाता है। पूर्ण विश्लेषण
AI कोड जनरेटर पैकेज नामों का भ्रम पैदा करते हैं लगभग 20% समय। हमलावर उन नामों को पंजीकृत करते हैं और प्रतीक्षा करते हैं। sloppy-joe उन्हें CI में पकड़ता है, इससे पहले कि npm install या pip install चले।
cargo install sloppy-joe
sloppy-joe check
sloppy-joe check --full
sloppy-joe check --ci
sloppy-joe check --dir ./my-project
sloppy-joe check --type npm
sloppy-joe check --python-groups dev,test --python-version 3.12 sloppy-joe check --python-extras docs --python-platform linux --python-version 3.12
sloppy-joe check --config /etc/sloppy-joe/config.json
sloppy-joe check --config https://raw.githubusercontent.com/yourorg/security-configs/main/sloppy-joe.json
sloppy-joe check --json
sloppy-joe check --review-exceptions
sloppy-joe init --register
sloppy-joe init --greenfield --ecosystem npm
sloppy-joe init --from-current
sloppy-joe init --from-current --register
sloppy-joe init > /secure/location/sloppy-joe.json
### Nix```bash
nix profile install github:brennhill/sloppy-joe
Scan modes:
sloppy-joe check तेज़ स्थानीय गार्डरेल चलाता है। यह हमेशा मेनिफ़ेस्ट पार्सिंग, लॉकफ़ाइल/सिंक, प्रोवेनेंस, और असमर्थित-स्रोत नीति लागू करता है। यदि निर्भरता या नीति की स्थिति बदल गई है, या पिछला सफल पूर्ण स्कैन 24 घंटे से पुराना है, तो यह sloppy-joe check --full की सिफारिश करता है।sloppy-joe check --full सख्त ऑनलाइन स्कैन चलाता है और रिकॉर्ड किए गए सफल पूर्ण-स्कैन स्थिति को ताज़ा करता है।sloppy-joe check --ci वही सख्त कवरेज चलाता है, CI-उन्मुख इरादे के साथ।sloppy-joe check डिफ़ॉल्ट रूप से runtime प्रोफ़ाइल का मूल्यांकन करता है। यदि स्कोप्ड निर्भरताएं मौजूद हैं, तो यह चेतावनी देता है और आपको CI/बिल्ड समानता के लिए स्पष्ट --python-groups, --python-extras, --python-platform, और/या --python-version फ़्लैग पास करने के लिए कहता है।sloppy-joe check आउटपुट हमेशा आपको CI और उत्पादन गेटिंग के लिए --ci या --full का उपयोग करने की याद दिलाता है।Exit codes: 0 = चयनित मोड में कोई अवरोधक समस्या नहीं मिली, 1 = अवरोधक समस्याएं मिलीं, 2 = रनटाइम त्रुटि।
Supports: JavaScript (npm, pnpm, Yarn, Bun), Python, Rust, Go, Ruby, PHP, JVM (Gradle/Maven), and .NET — मेनिफ़ेस्ट फ़ाइलों से स्वतः पहचाने जाते हैं।
Ecosystem guides: वर्तमान विश्वास मॉडल, समर्थित सुविधाओं और प्रत्येक इकोसिस्टम के लिए फेल-क्लोज़ सीमाओं के लिए docs/ecosystems/README.md देखें।
| इकोसिस्टम | आवश्यक मेनिफ़ेस्ट | विश्वसनीय लॉकफ़ाइल / प्रोजेक्ट स्थिति |
|---|---|---|
| JavaScript / npm | package.json | package-lock.json या npm-shrinkwrap.json; विरासत npm v1 डिफ़ॉल्ट रूप से अवरुद्ध |
| JavaScript / pnpm | package.json | pnpm-lock.yaml |
| JavaScript / Yarn | package.json | yarn.lock |
| JavaScript / Bun | package.json | bun.lock |
| Python | pyproject.toml, requirements*.txt, Pipfile, setup.cfg, या setup.py | विश्वसनीय Poetry पथ poetry.lock का उपयोग करता है, विश्वसनीय uv पथ uv.lock का उपयोग करता है, और पूरी तरह हैश-लॉक किए गए pip-tools पर केवल तभी भरोसा किया जाता है जब कमिट किया गया आवश्यकताएँ ग्राफ --index-url और किसी भी --extra-index-url मान को बिल्कुल बांधता है; रेपो-दृश्यमान Python अनुक्रमणिकाओं को trusted_indexes.pypi के माध्यम से अनुमति सूची में जोड़ा जा सकता है; विश्वसनीय Python मोड एक समय में एक चयनित इंस्टॉल प्रोफ़ाइल का मूल्यांकन करते हैं (डिफ़ॉल्ट रूप से runtime, CLI के माध्यम से स्पष्ट groups/extras/platform/arch/version); विरासत मेनिफ़ेस्ट डिफ़ॉल्ट रूप से चेतावनियों के साथ अनुमत हैं |
| Rust | Cargo.toml | Cargo.lock |
| Go | go.mod | बाहरी निर्भरताओं के लिए go.sum आवश्यक |
| Ruby | Gemfile | Gemfile.lock |
| PHP / Composer | composer.json | composer.lock |
| JVM / Gradle | build.gradle या build.gradle.kts | gradle.lockfile |
| JVM / Maven | pom.xml | केवल-चेतावनी: अभी तक कोई विश्वसनीय प्रोजेक्ट-स्थानीय लॉकफ़ाइल पथ नहीं |
| .NET / NuGet | .csproj | packages.lock.json |
Config sources: स्थानीय फ़ाइल पथ, HTTPS URL, या SLOPPY_JOE_CONFIG एनवी वैर। कॉन्फ़िग कभी भी प्रोजेक्ट निर्देशिका से नहीं पढ़ा जाता है (कारण के लिए CONFIG.md देखें)।
Onboarding: रेपो से मेल खाने वाले बूटस्ट्रैप मोड का उपयोग करें:
sloppy-joe init --greenfield --ecosystem <eco> एक नए प्रोजेक्ट के लिए इकोसिस्टम-विशिष्ट स्टार्टर नीति प्रिंट करता है। आज, ग्रीनफ़ील्ड प्रीसेट npm, pypi, और cargo के लिए लागू किए गए हैं; अन्य इकोसिस्टम "अभी तक समर्थित नहीं" त्रुटि के साथ विफल होते हैं। इसे रेपो के बाहर लिखने और सुरक्षित रूप से रजिस्टर करने के लिए --register जोड़ें।sloppy-joe init --from-current वर्तमान रेपो का निरीक्षण करता है और केवल-समीक्षा बूटस्ट्रैप सुझाव प्रिंट करता है। आज, --from-current केवल उन रेपो के लिए लागू किया गया है जिनका प्रथम-पक्ष कोड npm और/या cargo है; अन्य इकोसिस्टम "अभी तक लागू नहीं किया गया" त्रुटि के साथ बंद होते हैं। उत्पन्न कॉन्फ़िग को लिखने और रजिस्टर करने के लिए --register जोड़ें।sloppy-joe init एक तटस्थ मैन्युअल टेम्पलेट प्रिंट करता है।एकल बाइनरी। 8 इकोसिस्टम। 16 हमले के प्रकार। जनरेटिव जांच पर शून्य गलत सकारात्मक। ऐसा कॉन्फ़िग जिसे AI एजेंट छेड़छाड़ नहीं कर सकते।