Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
safe-npm — ثبّت حزم NPM بأمان | Kitploit
أدوات/GitHubGitHub/kevinslin/safe-npm
أدوات عامةتحليل الثغرات الأمنيةالبرمجة النصية والأتمتةDevSecOpsأمن سلسلة التوريد
GitHubkevinslin/safe-npm

safe-npm

ثبّت حزم NPM بأمان

عرض المستودع
19394منذ 9 أشهرتمت المراجعة من قبل 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 - تثبيت تبعيات الإنتاج فقط

متى تستخدمه:

  • تثبيت أدوات التطوير بمتطلبات أكثر صرامة
  • عمليات بناء الإنتاج حيث تريد سياسات عمر مختلفة لتبعيات التطوير مقابل تبعيات الإنتاج

--strategy <direct|overrides>

الافتراضي: direct

كيفية تثبيت safe-npm للإصدارات المُحلَّلة:

direct - تثبيت الإصدارات المُحلَّلة مباشرة باستخدام npm install package@version

  • بسيط ومباشر
  • مناسب لعمليات التثبيت لمرة واحدة أو البرامج النصية

overrides - كتابة الإصدارات المُحلَّلة إلى حقل overrides في package.json، ثم تشغيل npm install

  • يفرض الإصدارات عبر شجرة التبعيات بأكملها (بما في ذلك التبعيات غير المباشرة)
  • ملاحظة: هذه الميزة معطّلة حاليًا لأنها لا تعمل بشكل صحيح بعد

--registry <url>

الافتراضي: https://registry.npmjs.org

تحديد سجل npm بديل.

مثال: --registry https://registry.company.com

متى تستخدمه:

  • سجلات npm الخاصة
  • الخوادم العاكسة (Mirrors) أو التخزين المؤقت

--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

للاختبار الآلي، يمكنك محاكاة استجابات السجل باستخدام ملفات fixtures:

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

يجب أن يحتوي ملف fixtures على 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 يقايض التحديثات الحديثة جدًا بالحماية من الاختراقات المفاجئة لسلسلة التوريد. إنه طبقة واحدة في استراتيجية دفاع متعدد الطبقات يجب أن تشمل أيضًا:

  • عمليات تدقيق أمان منتظمة (npm audit)
  • مراجعة التبعيات قبل إضافة حزم جديدة
  • مراقبة النشرات الأمنية
  • استخدام ملفات القفل لضمان عمليات بناء قابلة للتكرار
  • التشغيل في بيئات معزولة أو حاويات

المتطلبات

  • Node.js 18 أو أحدث
  • npm (لعملية التثبيت الأساسية)

الترخيص

ISC