سیاست جداسازی سند: ویژگی های قدرتمند وب را به راحتی فعال کنید

کامیل لامی
Camille Lamy

تاریخ انتشار: 1 می 2025

از Chrome 137 Document Isolation Policy ویژگی جدیدی است که پذیرش crossOriginIsolation را آسان‌تر می‌کند. برخلاف COEP ( خط‌مشی Cross-Origin-Embedder-Policy )، سیاست جداسازی سند در هر فریم اعمال می‌شود و هیچ الزامی برای فریم‌های فرعی ندارد. با فعال کردن crossOriginIsolation ، Document Isolation Policy دسترسی به قابلیت‌های قدرتمند وب مانند SharedArrayBuffers یا رشته‌های WebAssembly را باز می‌کند.

جداسازی متقاطع چیست؟

جداسازی با مبدأ متقاطع، یک مرز ثابت را در اطراف یک سند و بستگان هم منشاء آن در فرآیند مرورگر ترسیم می‌کند. از گروه بندی شدن سند و به اشتراک گذاری بالقوه منابع یا اطلاعات با اسنادی از منابع مختلف جلوگیری می کند. جداسازی با مبدأ متقاطع با اطمینان از بارگیری مبدا در فرآیند خودش، صرف نظر از وضعیت پشتیبانی موتور مرورگر زیربنایی از جداسازی سایت یا جداسازی با مبدا متقاطع، به طور پیش‌فرض به این مهم دست می‌یابد. این به محافظت در برابر حملات اعدام حدس زده مانند Spectre کمک می کند.

سیاست جداسازی سند چیست؟

خط مشی جداسازی سند در مقایسه با COOP ( خط مشی بازکننده متقابل ) و COEP ( خط مشی Cross-Origin-Embedder ) راه ساده تری برای اجرای crossOriginIsolation ارائه می دهد. این امکان جداسازی بر اساس هر فریم را فراهم می کند و نیاز به iframe های تعبیه شده برای پشتیبانی از COEP را از بین می برد.

سیاست جداسازی سند چگونه کار می کند

Document Isolation Policy به شما امکان می دهد فریم های خاصی را در برنامه های وب آنها جدا کنید. با ارسال یک سرصفحه Document-Isolation-Policy همراه با سند خود، سند به ویژگی های قدرتمندی مانند SharedArrayBuffers دسترسی پیدا می کند که در غیر این صورت به دلیل نگرانی های امنیتی محدود شده اند. برخلاف COOP و COEP ، خط‌مشی جداسازی سند محدودیتی برای صفحاتی که سند می‌تواند با آنها ارتباط برقرار کند یا فریم‌های فرزندی که می‌تواند جاسازی کند، اعمال نمی‌کند. اسناد دارای خط‌مشی جداسازی سند می‌توانند پنجره‌های بازشوی متقاطع را باز کرده و با آنها ارتباط برقرار کنند. آنها همچنین می توانند هر iframe را به طور معمول جاسازی کنند.

Document Isolation Policy، مشابه COEP ، دو حالت دارد: isolate-and-require-corp و isolate-and-credentialless . این حالت‌ها نحوه مدیریت منابع فرعی با منبع متقابل بارگذاری شده بدون اشتراک‌گذاری منابع متقاطع (CORS) را کنترل می‌کنند. در حالت isolate-and-require-corp ، منابع متقاطع باید به صراحت خط مشی منابع متقابل خود را با استفاده از سربرگ Cross-Origin-Resource-Policy اعلام کنند. اگر نه، آنها مسدود شده اند. این تضمین می کند که منابع به طور عمدی به اشتراک گذاشته می شوند. برعکس، حالت isolate-and-credentialless به منابع متقاطع اجازه می‌دهد تا بدون سرصفحه CORS بارگیری شوند، اما هر گونه اعتبار (مانند کوکی‌ها یا احراز هویت HTTP) را از درخواست حذف می‌کند و به طور موثر با منبع به‌گونه‌ای رفتار می‌کند که گویی ناشناس است. این حالت یک روش کمتر محدود اما همچنان امن برای مدیریت منابع غیر CORS فراهم می کند.

اگر فریم‌های ایزوله‌شده با خط‌مشی جداسازی سند، دسترسی DOM همزمان به iframe‌های هم‌منشأ که ایزوله نیستند، ندارند. با این حال، این iframe های جدا شده همچنان می توانند با استفاده از روش های پنجره متقاطع مانند postMessage با فریم های غیر ایزوله ارتباط برقرار کنند. علاوه بر این، آنها دسترسی کامل به APIهای ذخیره سازی را حفظ می کنند و امکان تداوم و اشتراک گذاری داده ها را در همان مبدا، حتی با فعال بودن ایزوله، فراهم می کنند.