پایان اجرای خودکار اسکریپت‌های نصب

گیت‌هاب نسخه 12 مدیریت بسته npm را عرضه کرد که تغییرات بنیادی را در نحوه پردازش وابستگی‌ها و مدیریت اکانت‌ها پیاده‌سازی می‌کند. هدف اصلی این به‌روزرسانی، بستن راه‌های نفوذ در زنجیره تأمین نرم‌افزار و کاهش آسیب‌پذیری‌های ناشی از اجرای کدهای مخرب است. در این نسخه، npm دیگر به‌طور پیش‌فرض اسکریپت‌های چرخه حیات وابستگی‌ها را اجرا نخواهد کرد.

تنظیمات پیش‌فرض و محدودیت‌های جدید

توسعه‌دهندگان باید برای فعال‌سازی قابلیت‌های قدیمی، اقدام به صریح‌سازی دسترسی‌ها کنند. سه تغییر کلیدی به‌شرح زیر اعمال می‌شوند:

  • allowScripts: حالت پیش‌فرض روی off تنظیم شده و اجرای خودکار دستورات preinstall، install و postinstall غیرفعال می‌گردد.
  • --allow-git: فراخوانی وابستگی‌ها از طریق مخازن Git مستقیماً مسدود می‌شود.
  • --allow-remote: دانلود بسته‌ها از آدرس‌های HTTP یا HTTPS بدون تأیید مستقیم توسعه‌دهنده متوقف می‌شود.

برای بازگردانی کنترل به پروژه‌های معتبر، کاربران باید کامند npm approve-scripts --allow-scripts-pending را اجرا کنند و نتیجه را در فایل package.json ثبت نمایند. این فرآیند به‌جای اجرای خاموش و ریسکی کدهای سوم‌شخص، شفافیت کاملی را در محیط توسعه ایجاد می‌کند. پیش‌نمایش این تغییرات ماه گذشته ارائه شده بود و گیت‌هاب از توسعه‌دهندگان خواسته بود تا محیط‌های خود را به نسخه 11.16.0 یا بالاتر ارتقا دهند تا هشدارهای مربوطه را بررسی کنند. جزئیات فنی این تغییرات در تغییرات رسمی npm قابل مشاهده است.

خداحافظی با توکن‌های دورزننده احراز هویت

همزمان با تغییرات پکیج، سیاست‌های مربوط به توکن‌های دسترسی دقیق یا GAT نیز بازنگری اساسی خواهند شد. گیت‌هاب اعلام کرده که GATهایی که برای رد کردن احراز هویت دو مرحله‌ای (2FA) تنظیم شده‌اند، دیگر اجازه اجرای عملیات حساس مدیریت اکانت و سازمان را نخواهند داشت. این محدودیت شامل ایجاد یا حذف توکن، بازیابی کدها، تغییر تنظیمات پروفایل و مدیریت دسترسی‌های تیم‌ها می‌شود.

علاوه بر این، عملیات انتشار بسته‌ها نیز مستقیماً از توکن‌ها مستثنی خواهد شد و تنها پس از تأیید دستی یک انسان امکان‌پذیر می‌گردد. گیت‌هاب زمان‌بندی دقیقی برای اجرای این سیاست‌ها اعلام کرده است. محدودیت‌های اولیه برای GATها در اوایل آگوست 2026 و قفل کامل فرآیند انتشار در ژانویه 2027 اعمال می‌شود. تا آن زمان، تیم‌ها باید فرآیندهای استقرار خودکار (CI/CD) را به روش‌های OIDC یا انتشار مرحله‌ای با تأیید انسانی منتقل کنند و از تکیه بر توکن‌های بلندمدت بدون 2FA دست بردارند.

روند امن‌سازی در اکوسیستم جاوااسکریپت

این تغییرات تکمیل‌کننده حرکت اکوسیستم به سمت کاهش حملات زنجیره تأمین است. پروژه pnpm نیز در نسخه 11.10 تنظیمی جدید تحت عنوان _auth را معرفی کرده که اعتبارنامه‌ها را به‌صورت ساختاریافته و متصل به میزبان ذخیره می‌کند. با توجه به توضیحات شرکت Socket، این معماری جدید مانع از دستکاری فایل‌های پیکربندی پروژه به‌منظور هدایت توکن‌ها به مخازن مخرب می‌شود.

تغییر مسیر توکن یک روش رایج برای دزدی اطلاعات است و مسدودسازی این مسیر، لایه دفاعی مهمی را برای پروژه‌های متن‌باز فراهم می‌کند. با جدی‌تر شدن حمله‌های هدفمند به کتابخانه‌های عمومی، ابزارهای مدیریت بسته مجبورند مرز بین راحتی توسعه و امنیت را دوباره تعریف کنند. انتظار می‌رود در ماه‌های آینده، پرفایل‌های CI/CD و مستندات رسمی پلتفرم‌های میزبانی کد، کاملاً با این استانداردهای جدید هماهنگ شوند تا چرخه انتشار نرم‌افزار بدون افت سرعت، امن‌تر از همیشه اجرا گردد.