Composer 2.10: فیلتر بومی بدافزار برای پروژههای PHP
خلاصهٔ کاملتر
Composer 2.10 با تمرکز اصلی روی امنیت زنجیره تأمین پکیجهای PHP منتشر شده. بزرگترین تغییر این نسخه یه سیاست ضد بدافزار (malware policy) بومیه که مستقیم توی فرایند نصب و آپدیت بستهها عمل میکنه.
این مکانیزم جدید نسخههای پکیجهایی که در Packagist.org بهعنوان مخرب علامتگذاری شدن رو از pool انتخاب کاندیداها حذف میکنه. یعنی این نسخهها نه با composer update، نه با composer require، و نه با composer create-project قابل نصب نیستن. مورد جالبتر اینه که این بررسی روی composer install هم اعمال میشه — پس اگه یه نسخه مخرب قبلاً وارد فایل composer.lock شده باشه و بعداً توسط Packagist فلگ بشه، نصب بعدی روی سرور CI یا پروداکشن با خطا متوقف میشه و بیسروصدا اجرا نمیشه.
دستور composer audit هم بهروزرسانی شده و حالا بدافزارها رو شناسایی میکنه. بهطور پیشفرض وقتی بدافزار پیدا کنه exit code برابر 1 برمیگردونه (یعنی شکست). این تغییر همراه یه تغییر breaking change دیگهست: exit code های composer audit استانداردسازی شدن — 0 یعنی موفق، 1 یعنی audit ناموفق.
یه ویژگی مفید دیگه آبجکت جدید config.policy ئه که بهت اجازه میده سیاستهای امنیتی رو برای advisoryهای امنیتی، پکیجهای abandoned، بدافزار، و حتی سیاستهای سفارشی تنظیم کنی. همچنین wildcard در composer update --with پشتیبانی میشه؛ مثلاً:
composer update --with "acme/*:^2.0"این یعنی میتونی برای همه پکیجهای یه vendor محدودیت نسخه بذاری بدون اینکه هر کدوم رو جداگانه بنویسی.
تغییرات دیگه شامل اضافه شدن آپشن --require به composer create-project، بهبود autoloading پلاگینها، کاهش مصرف حافظه در dependency resolver، و deprecate شدن fallback خودکار به سورس وقتی دانلود dist شکست میخوره (با یه آپشن موقت source-fallback) میشه. برای آپدیت به این نسخه کافیه composer self-update رو اجرا کنی.
نکات کلیدی:
- بلاک بومی بدافزار: نسخههای مخرب نه نصب میشن و نه از lockfile موجود اجرا میشن
- composer audit حالا بدافزار هم شناسایی میکنه و exit code استاندارد داره
- آبجکت config.policy برای کنترل سیاستهای امنیتی اضافه شد
- پشتیبانی از wildcard در composer update --with
- fallback خودکار به سورس deprecated شده




