connection allowlist: مرورگر نگهبان اتصالهای سایتت میشه
خلاصهٔ کاملتر
تو این اعلان از تیم Chrome اومده که از کروم ۱۵۲ قابلیتی به اسم connection allowlists در دسترسه: یه مکانیزم امنیتی که برای داکیومنتها و workerهای سایتت یه سندباکس شبکهای سختگیر میسازه. انگیزهش هم روشنه. سایتهای امروزی پر از اسکریپت شخص سوم و حتی کدی هستن که همون لحظه با هوش مصنوعی تولید میشه، و این یعنی ریسک بیرون رفتن اطلاعات حساس بالا میره.
نویسندهها توضیح میدن که چرا CSP برای این کار کافی نیست. CSP ابزار قویای برای کنترل اینه که صفحه چی رو لود و اجرا کنه، ولی طراحی نشده که محدود کنه صفحه به کجا حرف بزنه. CSP درخواستها رو به نوعهای جدا دستهبندی میکنه که وقتی فقط یه مرز کلی شبکه میخوای، بیش از حد ریزه. از اون مهمتر همهٔ APIهای پلتفرم وب رو پوشش نمیده و چیزهایی مثل DNS prefetch، ناوبری و WebRTC ازش بیرون میمونن.
کارکردش اینه که مرورگر دربان همهٔ اتصالهای صفحه میشه. با هدر پاسخ Connection-Allowlist دقیقاً الگوی URLهای مجاز رو میگی، با همون سینتکس استاندارد URLPattern، و مرورگر قبل از برقرار کردن هر اتصال مقصد رو با لیست چک میکنه و اگه مچ نشد همون سطح شبکه جلوش رو میگیره. یعنی حالت پیشفرض میشه «همه چیز بسته، مگه اینکه اجازه بدی». توکن response-origin هم همون اوریجینی که پاسخ از اون سرو شده رو خودکار به لیست اضافه میکنه.
Connection-Allowlist: ("https://api.example.com/*" response-origin)یه نکتهٔ مهم: این سیاست به صورت پیشفرض تغییر مسیرها و اتصالهای WebRTC رو هم میبنده، و اگه لازمشون داری باید تو همون هدر صریحاً اجازهشون رو بدی. سیاست هم برای هر window و هر worker جداگونه حساب میشه. برای اینکه سایتت یهو نشکنه میتونی اول با هدر Connection-Allowlist-Report-Only شروع کنی: مرورگر فقط گزارش تخلفها رو به اندپوینت Reporting API میفرسته و هیچ اتصالی رو قطع نمیکنه. برای این حالت باید هدر Reporting-Endpoints رو هم ست کنی.
کاربردهای اصلیای که تو پست اومده سه چیزه: مهار کدی که با هوش مصنوعی تولید شده یا تو سندباکس توسعه اجرا میشه، کنترل اسکریپتها و بازیهای شخص سوم حتی وقتی خودشون هک شده باشن، و کشیدن یه مرز شبکهای دور بخشهای حساس اپ. این قابلیت جایگزین CSP نیست و به شکل progressive enhancement روی ستاپ CSP فعلیت سوار میشه. برای تست هم کافیه هدر رو روی سرور لوکال ست کنی و تو DevTools تب Network و تب Issues نتیجه رو ببینی.
نکات کلیدی:
- از کروم ۱۵۲ هدر Connection-Allowlist فعاله و الگوهای مجاز رو با سینتکس URLPattern میگیره
- حالت پیشفرض deny-by-default هست و مرورگر اتصال نامچ رو همون سطح شبکه میبنده
- تغییر مسیر و WebRTC پیشفرض بستهان و باید تو همون هدر صریحاً اجازه بگیرن
- Connection-Allowlist-Report-Only همراه هدر Reporting-Endpoints حالت فقطگزارش میده
- سیاست برای هر window و هر worker جداگونه اعمال میشه
- جایگزین CSP نیست؛ به عنوان یه لایهٔ اضافه روی CSP مینشینه




