گیتهاب اکشنز کنترل دسترسی به کش رو دقیقتر کرد
خلاصهٔ کاملتر
گیتهاب اکشنز یه ویژگی جدید به اسم cache-mode رو به صورت عمومی و روی همه پلنها در دسترس گذاشته. با این ویژگی میشه سطح دسترسی هر ورکفلو یا job به کش گیتهاب اکشنز رو دقیقتر تعیین کرد، تا کارهایی که نیازی به کش ندارن نتونن ازش بخونن یا توش چیزی بنویسن.
چهار حالت وجود داره: read فقط اجازه خوندن کش رو میده نه نوشتن (پیشفرض برای رویدادهای کماعتماد مثل pull_request_target)، write هم خوندن هم نوشتن رو اجازه میده (پیشفرض برای رویدادهای معتبر مثل push)، write-only فقط نوشتن رو باز میذاره، و none کلا دسترسی رو میبنده. تنظیم سطح job روی تنظیم سطح ورکفلو اولویت داره، و این محدودیت حتی تو reusable workflow ها هم اجرا میشه - یعنی یه ورکفلوی فراخونیشده نمیتونه دسترسی بیشتر از فراخونیکنندهش داشته باشه.
دلیل اصلی این قابلیت جلوگیری از یه حمله به اسم cache poisoningـه (یعنی وقتی یه مهاجم یه کش آلوده رو جای کش قانونی جا میزنه تا کد ناخواسته توی یه ورکفلوی معتبر اجرا بشه). برای همین اگه کسی صراحتا write یا write-only رو برای رویدادهای کماعتماد فعال کنه، گیتهاب یه هشدار نشون میده. ورکفلوهایی که اصلا cache-mode رو تنظیم نکنن، همون رفتار امن قبلی رو دارن.
نکات کلیدی:
- cache-mode چهار حالت داره: read، write، write-only و none
- تنظیم سطح job روی ورکفلو اولویت داره و تو reusable workflow ها هم اعمال میشه
- پیشفرض رویدادهای کماعتماد مثل pull_request_target روی readـه
- این قابلیت الان روی همه پلنهای گیتهاب در دسترسه




