Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
safe-npm — NPM पैकेज सुरक्षित रूप से इंस्टॉल करें | Kitploit
उपकरण/GitHubGitHub/kevinslin/safe-npm
सामान्य उपयोगिताएँभेद्यता विश्लेषणस्क्रिप्टिंग और स्वचालनDevSecOpsआपूर्ति श्रृंखला सुरक्षा
GitHubkevinslin/safe-npm

safe-npm

NPM पैकेज सुरक्षित रूप से इंस्टॉल करें

रिपॉजिटरी देखें
19399 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

safe-npm

एक सुरक्षा-केंद्रित npm इंस्टॉलर जो आपके प्रोजेक्ट्स को हाल ही में समझौता किए गए पैकेजों से सुरक्षित रखता है।

यह क्यों मौजूद है?

npm पैकेजों पर सप्लाई चेन हमले एक बढ़ता हुआ खतरा हैं। हमलावर कभी-कभी वैध पैकेजों से समझौता करते हैं:

  • मेंटेनर क्रेडेंशियल चुराकर
  • लोकप्रिय पैकेजों में दुर्भावनापूर्ण अपडेट प्रकाशित करके
  • परित्यक्त पैकेजों पर कब्ज़ा करके

ये हमले अक्सर अचानक होते हैं—एक पैकेज जो कल सुरक्षित था, आज समझौता हो सकता है। safe-npm आपको केवल उन पैकेज संस्करणों को स्थापित करके सुरक्षित रखता है जो न्यूनतम समय (डिफ़ॉल्ट रूप से 90 दिन) के लिए सार्वजनिक रूप से उपलब्ध रहे हैं। इससे सुरक्षा समुदाय को आपके प्रोजेक्ट तक पहुँचने से पहले दुर्भावनापूर्ण रिलीज़ को खोजने और रिपोर्ट करने का समय मिलता है।

यह कैसे काम करता है

जब आप safe-npm install चलाते हैं, यह:

  1. package.json या कमांड-लाइन तर्कों से आपकी डिपेंडेंसी पढ़ता है
  2. सभी उपलब्ध संस्करणों को खोजने के लिए npm रजिस्ट्री से क्वेरी करता है
  3. आपकी न्यूनतम आयु सीमा से हाल ही में प्रकाशित संस्करणों को फ़िल्टर करता है
  4. नवीनतम संस्करण चुनता है जो आपकी semver आवश्यकताओं और आयु आवश्यकताओं दोनों को पूरा करता है
  5. npm का उपयोग करके सुरक्षित संस्करण स्थापित करता है

उदाहरण के लिए, यदि आप react@^18 निर्दिष्ट करते हैं और एक दुर्भावनापूर्ण [email protected] कल प्रकाशित हुआ था, तो safe-npm इसके बजाय नवीनतम संस्करण स्थापित करेगा जो कम से कम 90 दिन पुराना हो।

स्थापना

npm से स्थापित करें (अनुशंसित)

root@kitploit:~
# Install globally
npm install -g @dendronhq/safe-npm

# Now you can use it anywhere
safe-npm install

स्रोत से बिल्ड करें

root@kitploit:~
# Clone and build
git clone <repository-url>
cd safe-npm
npm install
npm run build

# Link the binary globally
npm link

मूल उपयोग

package.json से डिपेंडेंसी स्थापित करें

root@kitploit:~
# Use the minimum age of 90 days (default)
safe-npm install

# Or specify your own minimum age
safe-npm install --min-age-days 120

विशिष्ट पैकेज स्थापित करें

root@kitploit:~
# Install packages directly with version constraints
safe-npm install react@^18 lodash@^4.17.0

# These will be filtered to only use versions at least 90 days old
safe-npm install express --min-age-days 60

ड्राई रन: देखें कि क्या स्थापित होगा

root@kitploit:~
# Preview which versions would be installed without actually installing
safe-npm install --dry-run

कॉन्फ़िगरेशन विकल्प

--min-age-days <n>

डिफ़ॉल्ट: 90

किसी पैकेज संस्करण को स्थापित किए जाने से पहले प्रकाशित हुए न्यूनतम दिनों की संख्या।

उदाहरण: --min-age-days 120 के लिए पैकेजों को कम से कम 4 महीने पुराना होना आवश्यक है।

कब समायोजित करें:

  • अधिकतम सुरक्षा के लिए बढ़ाएँ (जैसे, महत्वपूर्ण प्रोडक्शन सिस्टम के लिए 180 दिन)
  • यदि आपको नई सुविधाओं की आवश्यकता है और थोड़ा अधिक जोखिम स्वीकार करते हैं तो घटाएँ (जैसे, 30 दिन)

--ignore <pkg1,pkg2>

पैकेजों की एक अल्पविराम-पृथक सूची जो आयु आवश्यकता को दरकिनार करती है। ये पैकेज अभी भी semver रेंज का सम्मान करेंगे लेकिन न्यूनतम आयु को अनदेखा करेंगे।

उदाहरण: --ignore typescript,@types/node

कब उपयोग करें:

  • तेज़ी से बदलने वाले पैकेज जिन पर आप भरोसा करते हैं (जैसे TypeScript या बिल्ड टूल)
  • आपके संगठन के आंतरिक पैकेज
  • ऐसे पैकेज जहाँ आपको तत्काल नवीनतम सुविधाओं की आवश्यकता है

--strict

यदि कोई भी डिपेंडेंसी आयु आवश्यकता को पूरा करने वाले संस्करण में हल नहीं हो पाती है तो एक त्रुटि के साथ बाहर निकलें।

उदाहरण: safe-npm install --strict

कब उपयोग करें:

  • CI/CD पाइपलाइन जहाँ आप चाहते हैं कि समस्याग्रस्त पैकेजों को छोड़ने के बजाय बिल्ड विफल हो
  • प्रोडक्शन डिप्लॉयमेंट जहाँ आपको निश्चितता की आवश्यकता है

--dev / --prod-only

नियंत्रित करें कि package.json की कौन सी डिपेंडेंसी संसाधित की जाती हैं।

उदाहरण:

  • safe-npm install --dev - केवल devDependencies स्थापित करें
  • safe-npm install --prod-only - केवल प्रोडक्शन डिपेंडेंसी स्थापित करें

कब उपयोग करें:

  • सख्त आवश्यकताओं वाले विकास उपकरण स्थापित करते समय
  • प्रोडक्शन बिल्ड जहाँ आप dev बनाम prod डिपेंडेंसी के लिए अलग-अलग आयु नीतियाँ चाहते हैं

--strategy <direct|overrides>

डिफ़ॉल्ट: direct

safe-npm हल किए गए संस्करणों को कैसे स्थापित करता है:

direct - npm install package@version का उपयोग करके हल किए गए संस्करणों को सीधे स्थापित करता है

  • सरल और सीधा
  • एक बार के इंस्टॉल या स्क्रिप्ट के लिए अच्छा

overrides - हल किए गए संस्करणों को package.json के overrides फ़ील्ड में लिखता है, फिर npm install चलाता है

  • आपके संपूर्ण डिपेंडेंसी ट्री (ट्रांज़िटिव डिपेंडेंसी सहित) में संस्करणों को लागू करता है
  • नोट: यह सुविधा वर्तमान में अक्षम है क्योंकि यह अभी तक सही ढंग से काम नहीं करती है

--registry <url>

डिफ़ॉल्ट: https://registry.npmjs.org

एक वैकल्पिक npm रजिस्ट्री निर्दिष्ट करें।

उदाहरण: --registry https://registry.company.com

कब उपयोग करें:

  • निजी npm रजिस्ट्री
  • मिरर या कैश

--dry-run

कोई बदलाव किए बिना दिखाएँ कि क्या स्थापित किया जाएगा।

उदाहरण: safe-npm install --dry-run

कब उपयोग करें:

  • अपने कॉन्फ़िगरेशन का परीक्षण करना
  • यह समझना कि कौन से संस्करण उपलब्ध हैं
  • प्रोडक्शन सिस्टम में बदलाव करने से पहले

सामान्य वर्कफ़्लो

नया प्रोजेक्ट सुरक्षित करें

root@kitploit:~
# Create a new project
mkdir my-project && cd my-project
npm init -y

# Install dependencies safely
safe-npm install express@^4 lodash

# This creates package-lock.json with versions at least 90 days old

मौजूदा प्रोजेक्ट का ऑडिट करें

root@kitploit:~
# Check what versions would be installed with age requirements
safe-npm install --dry-run

# If you're happy, install them
safe-npm install

CI/CD एकीकरण

root@kitploit:~
# In your CI pipeline, fail the build if any package can't meet age requirements
safe-npm install --strict --min-age-days 120

# Or allow newer packages for dev dependencies only
safe-npm install --prod-only --strict

आपातकालीन अपडेट

root@kitploit:~
# Need to urgently update a specific package? Add it to ignore list
safe-npm install --ignore package-with-critical-fix

परीक्षण

प्रोजेक्ट में एक टेस्ट सूट शामिल है जिसे आप चला सकते हैं:

root@kitploit:~
npm test

स्वचालित परीक्षण के लिए, आप फिक्स्चर का उपयोग करके रजिस्ट्री प्रतिक्रियाओं को मॉक कर सकते हैं:

root@kitploit:~
export SAFE_NPM_FIXTURES=/path/to/fixtures.json
safe-npm install

फिक्स्चर फ़ाइल में JSON होना चाहिए जो प्रत्येक पैकेज के लिए npm रजिस्ट्री प्रतिक्रियाओं को दर्शाता है।

यह आपकी सुरक्षा कैसे करता है

वास्तविक दुनिया का परिदृश्य:

  1. एक लोकप्रिय पैकेज popular-lib एक विश्वसनीय डेवलपर द्वारा बनाए रखा जाता है
  2. हमलावर मेंटेनर के npm क्रेडेंशियल से समझौता करता है
  3. हमलावर मैलवेयर के साथ [email protected] प्रकाशित करता है
  4. ^5.0.0 का उपयोग करने वाले प्रोजेक्ट तुरंत दुर्भावनापूर्ण संस्करण स्थापित करेंगे
  5. safe-npm के साथ, आप 4.9.0 (90+ दिन पुराना नवीनतम संस्करण) का उपयोग करते रहेंगे
  6. सुरक्षा शोधकर्ता समझौते का पता लगाते हैं और रिपोर्ट करते हैं
  7. दुर्भावनापूर्ण संस्करण अप्रकाशित कर दिया जाता है
  8. आपने कभी समझौता किया गया संस्करण स्थापित नहीं किया

सीमाएँ

  • उन पैकेजों से सुरक्षा नहीं करता जो शुरू से दुर्भावनापूर्ण थे
  • वैध नई सुविधाओं और बग फिक्स तक पहुँच में देरी करता है
  • विश्वास की आवश्यकता है कि पुराने संस्करणों में अनदेखी कमजोरियाँ नहीं हैं
  • आयु-आधारित फ़िल्टरिंग एक अनुमान है, गारंटी नहीं

दर्शन

सुरक्षा समझौतों के बारे में है। safe-npm अचानक सप्लाई चेन समझौतों से सुरक्षा के लिए ब्लीडिंग-एज अपडेट का व्यापार करता है। यह एक गहन-सुरक्षा (defense-in-depth) रणनीति की एक परत है जिसमें ये भी शामिल होने चाहिए:

  • नियमित सुरक्षा ऑडिट (npm audit)
  • नए पैकेज जोड़ने से पहले डिपेंडेंसी समीक्षा
  • सुरक्षा सलाहकारों की निगरानी
  • प्रतिलिपि योग्य बिल्ड सुनिश्चित करने के लिए लॉक फ़ाइलों का उपयोग
  • सैंडबॉक्स या कंटेनरीकृत वातावरण में चलाना

आवश्यकताएँ

  • Node.js 18 या उच्चतर
  • npm (अंतर्निहित स्थापना के लिए)

लाइसेंस

ISC

टूल डाउनलोड करें