الحزم التي تعتمد عليها كود لم تراجعه
مطوّر واحد يقع في التصيّد قد يدخل برنامجًا خبيثًا إلى آلاف التطبيقات. عادات بسيطة تحدّ من الضرر.
تطبيق ويب عادي يسحب مئات الحزم. كل واحدة منها كود يعمل بصلاحيات تطبيقك، كتبه أشخاص لم تقابلهم.
سبتمبر الماضي أظهر مدى هشاشة ذلك. وقع أحد مطوّري حزم npm في التصيّد، فدخل برنامج خبيث إلى بعض أكثر حزم JavaScript تنزيلًا لساعات قليلة. كل من ثبّت نسخة جديدة في تلك النافذة حصل عليه.
عادات تساعد:
- احفظ ملف القفل (lock file) في المستودع وثبّت بـ
npm ci(أو ما يقابله في لغتك) داخل CI، لتستخدم البناءات إصدارات محددة. - لا تحدّث لحظة صدور الإصدار. تأخير أيام قليلة يترك للآخرين اكتشاف الإصدارات السيئة.
- فعّل تنبيهات الحزم (Dependabot أو ما يشبهه) واقرأها فعلًا.
- حزم أقل. عشرة أسطر تكتبها أفضل من حزمة تعتمد على أربعين حزمة.
- خوادم البناء لا تحمل أسرار الإنتاج التي لا تحتاجها، فسكربتات التثبيت تعمل هناك أيضًا.
لا تستطيع مراجعة كل سطر، لكنك تستطيع التحكم في متى يدخل الكود الجديد، وإلى أي مدى يصل.