منتشر شده: ۱۶ آوریل ۲۰۲۶
از آنجا که برنامههای وب، به خصوص با ظهور هوش مصنوعی مولد یکپارچه، پیچیدهتر میشوند، محافظت از دادههای کاربر از اولویت بالایی برخوردار است. به همین دلیل است که ما نسخه آزمایشی Origin را برای Connection Allowlists اعلام میکنیم، یک مکانیسم امنیتی جدید که یک جعبه شنی شبکه برای اسناد و کاربران ایجاد میکند.
پیشینه
در یک اکوسیستم وب مدرن، دادههای حساس دائماً بین کلاینتها و سرورها جابجا میشوند. این تحرک، همراه با زنجیره تأمین پیچیده اسکریپتهای شخص ثالث و ظهور کدهای تولید شده پویا از هوش مصنوعی مولد، خطر استخراج دادهها را به میزان قابل توجهی افزایش میدهد.
اسکریپتهای مخرب، آسیبپذیریهای موجود در کتابخانههای همراه یا رفتارهای ناخواسته در کد تولید شده توسط هوش مصنوعی مولد میتوانند بررسیهای سطح برنامه را دور بزنند تا اطلاعات حساس را به نقاط انتهایی غیرمجاز ارسال کنند. در حالی که سیاست امنیت محتوا (CSP) ابزاری قدرتمند برای کنترل آنچه یک صفحه میتواند بارگیری و اجرا کند، مدیریت پیچیدگی آن برای محدود کردن خاص محل ارتباط یک صفحه میتواند چالش برانگیز باشد. این اغلب منجر به سیاستهای گستردهای میشود که جایی برای فعالیت شبکه غیرمجاز باقی میگذارد.
لیستهای مجاز اتصال، جعبه شنی
لیستهای مجاز اتصال، با تبدیل مرورگر به دروازهبان تمام اتصالات شبکهای که از صفحه شما سرچشمه میگیرند، روشی مستقیم برای مقابله با این خطرات ارائه میدهند. با گنجاندن هدر پاسخ HTTP Connection-Allowlist ، یک سایت الگوهای دقیق URL مجاز برای تمام ارتباطات شبکهای که توسط زمینه آن، مانند یک سند یا یک وب ورکر، آغاز میشود را مشخص میکند.
این ویژگی یک فایروال "غیرقابل انکار به صورت پیشفرض" در سطح چارچوب را اعمال میکند. قبل از برقراری هرگونه اتصال، به عنوان مثال، واکشی یک زیرمنبع، تغییر مسیر ناوبری یا اتصال WebSocket، مرورگر مقصد را با لیست مجاز مطابقت میدهد. اگر نقطه پایانی مطابقت نداشته باشد، مرورگر اتصال را در سطح شبکه مسدود میکند. مرورگر مرزهای شبکه را حتی اگر کد مخرب سعی در دور زدن منطق سطح برنامه داشته باشد، حفظ میکند.
نحوه کار لیستهای مجاز اتصال
لیستهای مجاز اتصال، با تبدیل مرورگر به دروازهبان تمام اتصالات شبکهای که از صفحه شما سرچشمه میگیرند، روشی مستقیم برای مقابله با این خطرات ارائه میدهند. با گنجاندن هدر پاسخ HTTP Connection-Allowlist ، یک سایت الگوهای دقیق URL مجاز برای تمام ارتباطات شبکهای آغاز شده توسط context خود را مشخص میکند. برای نسخه آزمایشی origin، این فقط برای document contexts پشتیبانی میشود.
قبل از برقراری هرگونه اتصال، به عنوان مثال، واکشی یک زیرمنبع، تغییر مسیر ناوبری یا اتصال WebSocket، مرورگر مقصد را با لیست مجاز مطابقت میدهد. اگر نقطه پایانی مطابقت نداشته باشد، مرورگر اتصال را در سطح شبکه مسدود میکند. این تضمین میکند که مرزهای شبکه حتی اگر کد مخرب سعی در دور زدن منطق سطح برنامه داشته باشد، حفظ میشوند.
از توکن response-origin استفاده کنید
میتوانید از توکن response-origin استفاده کنید که به صورت پویا مبدایی را که پاسخ از آن ارائه میشود به لیست مجاز اضافه میکند:
Connection-Allowlist: ("https://api.example.com/*" response-origin)
در این مثال، صفحه میتواند به هر مسیری در مبدا و نقطه پایانی API مشخص شده متصل شود.
تخلفات را گزارش دهید
برای نظارت بر مشکلات احتمالی بدون ایجاد اختلال در عملکرد سایت خود، میتوانید از هدر Connection-Allowlist-Report-Only استفاده کنید. این نوع، سیاست را تجزیه و تحلیل کرده و گزارشهای تخلف را با استفاده از Reporting API به یک نقطه پایانی مشخص ارسال میکند.
Connection-Allowlist: ("https://trusted.com/*"); report-to=security-endpoint
موارد استفاده کلیدی
لیستهای مجاز اتصال برای محیطهای با امنیت بالا یا پویا مفید هستند:
- هوش مصنوعی مولد و کد غیرقابل اعتماد: اگر سایت شما به کاربران اجازه میدهد کد تولید شده یا غیرقابل اعتماد را اجرا کنند، به عنوان مثال، در Sheets Canvas یا محیطهای توسعه سندباکس، لیستهای مجاز اتصال میتوانند از ارسال دادهها به دامنههای خارجی توسط کد جلوگیری کنند.
- نظارت شخص ثالث: شما میتوانید اطمینان حاصل کنید که حتی اگر یک اسکریپت شخص ثالث به خطر بیفتد، نمیتواند دادهها را به سرورهای غیرمجاز ارسال کند.
- حفاظتهای معماری: برای بخشهای حساس برنامه خود، یک مرز شبکهای سختگیرانه اعمال کنید و اطمینان حاصل کنید که فقط با بکاندهای تأیید شده ارتباط برقرار میشود.
تفاوتها با سیاست امنیت محتوا
اگرچه لیستهای مجاز اتصال و CSP اهداف مشابهی دارند، اما مکمل یکدیگر هستند:
- تمرکز در سطح شبکه: لیستهای مجاز اتصال، به جای نحوه بارگذاری یا اجرای یک منبع، بر مقصد اتصالات شبکه تمرکز دارند.
- پوشش جامع: این دوره، ناوبریها، ریدایرکتها و APIهای مختلف پلتفرم وب، مانند Fetch، WebRTC، WebTransport، DNS prefetch و preload را به صورت یکپارچه پوشش میدهد.
- سینتکس سادهشده: لیستهای مجاز اتصال روی یک کار واحد تمرکز دارند که پیکربندی و ممیزی امنیتی را ساده میکند.
با لیستهای مجاز اتصال آزمایش کنید
ویژگی لیستهای مجاز اتصال برای آزمایش محلی در دسترس است. قرار است نسخه آزمایشی origin از Chrome 148 تا Chrome 151 اجرا شود. با پیشرفت نسخه آزمایشی origin، این قابلیت همچنان در حال اضافه شدن است. در آغاز این نسخه آزمایشی، قابلیت گزارشدهی محدود به زمینههای سند است؛ Dedicated، Shared و Service Worker پشتیبانی نمیشوند. جزئیات بیشتر در مورد آنچه پشتیبانی میشود، در بخش Register for the origin trial آمده است.
تست به صورت محلی
- فعال کردن پرچم: کروم را باز کنید و به
chrome://flags/#connection-allowlistبروید. پرچم را روی Enabled تنظیم کنید. - هدر را مستقر کنید: سرور توسعه محلی خود را طوری پیکربندی کنید که هدر پاسخ HTTP مربوط به
Connection-Allowlistرا ارسال کند. برای مثال،Connection-Allowlist: ("https://api.example.com/*" response-origin). - تأیید با DevTools: Chrome DevTools را باز کنید و اقداماتی را انجام دهید که درخواستهای شبکه را فعال میکنند.
- پنل شبکه : درخواستهایی که «مسدود شده: سایر» هستند یا خطای اتصال نشان میدهند را بررسی کنید.
- برگه مشکلات : در صورت وجود هرگونه خطای تجزیه در هدر، به دنبال گزارشهای دقیق باشید.
برای دوره آزمایشی Origin ثبت نام کنید
اگرچه آزمایش محلی برای توسعه عالی است، اما برای فعال کردن لیستهای مجاز اتصال برای کاربران خود در محیط عملیاتی، باید در نسخه آزمایشی اصلی ثبتنام کنید.
- به داشبورد آزمایشهای Chrome origin بروید.
- نسخه آزمایشی Connection Allowlists origin را پیدا کنید و روی ثبت نام کلیک کنید.
- توکن تولید شده را همانطور که در راهنمای آزمایشهای «شروع با مبدأ» توضیح داده شده است، به صفحات یا سربرگهای سایت خود اضافه کنید.
قرار است نسخه آزمایشی Origin از Chrome 148 تا Chrome 151 اجرا شود. با پیشرفت نسخه آزمایشی Origin، قابلیتها همچنان اضافه میشوند، بنابراین اکیداً توصیه میشود هنگام آزمایش Connection Allowlists، از مکانیسمهای امنیتی وب موجود خود استفاده کنید. هدف آزمایش، جزئیات بیشتری در مورد نقاط پایانی شبکه تحت پوشش پیادهسازی Connection Allowlists ارائه میدهد.
ارائه بازخورد
در مورد طراحی و کاربرد این ویژگی بازخورد خود را ارائه دهید. اگر با مشکلی مواجه شدید یا پیشنهادی برای بهبود دارید، با تیم تماس بگیرید:
- گیتهاب : یک مشکل را باز کنید یا در مورد یک مشکل موجود در مخزن
WICG/connection-allowlistsنظر دهید. - ردیاب اشکال کرومیوم : در ردیاب اشکال کرومیوم، یک مشکل ایجاد کنید .