ملفات Bun lockfiles وأمن سلسلة التوريد الخاصة بك

ملفات القفل الثنائية (Binary lockfiles) هي ضريبة أمنية—ستدفع ثمنها لاحقًا، مع الفوائد.

اعتاد Bun تخزين التبعيات في ملف ثنائي يسمى bun.lockb. كان سريعًا وصغيرًا، لكن لم يكن بإمكانك قراءته. لم يكن بإمكانك إجراء مقارنة (diff) له في طلب سحب (pull request)، ولم يكن بإمكانك رؤية ما تغير.

عندما لا تستطيع مراجعة تغيير في التبعيات، فأنت لا تملك سياسة—بل مجرد تخمين.

يقوم Bun v1.2 بتغيير الإعداد الافتراضي إلى ملف نصي bun.lock. وهذا وحده يمثل انتصارًا أمنيًا كبيرًا.

لماذا تهم ملفات lockfiles النصية

  • مقارنات (diffs) ذات مغزى – يرى المراجعون بالضبط أي الحزم انتقلت أو تغيرت.
  • فحوصات سياسة سهلة – يمكن لـ CI فحص الأنماط المحظورة أو السجلات (registries) غير الموثوقة.
  • تحقيقات جنائية أسرع – يوضح git log الالتزام (commit) المحدد الذي أدخل حزمة ضارة.

يضمن ملف القفل (lockfile) السلامة وإمكانية إعادة الإنتاج، لكنه ليس حلاً سحريًا. فهو لن يمنع إصدارًا ضارًا تم نشره بشكل شرعي، ولا مطورًا تم اختراق حسابه.

ما يضيفه ملف القفل النصي هو الوضوح (visibility). والوضوح هو خط دفاعك الأول.

كيف تؤمن سير عمل Bun الخاص بك

  • قم بتشغيل bun install --frozen-lockfile في CI. سيفشل البناء إذا كان ملف القفل يحتاج إلى تحديث.
  • قم بتشغيل bun install --lockfile-only في CI. ستتحقق من عملية الحل (resolution) دون تنفيذ سكربتات التثبيت الثقيلة.
  • قم بترحيل أي ملفات bun.lockb إلى bun.lock على الفور.
  • اشترط المراجعة البشرية لتغييرات ملف القفل. أضف المالكين المناسبين إلى CODEOWNERS لضمان رؤية العيون المناسبة لكل تحديث للتبعيات.

توقف عن الثقة بالأداة بشكل أعمى. تحقق من كل تغيير بدلاً من ذلك.

المصدر: https://dev.to/kunal_d6a8fea2309e1571ee7/bun-lockfile-bunlockb-format-threat-model-ci-checks-2026-4i3b