اجرای سختگیرانه‌تر سیاست‌های سازمانی برای chrome.debugger در کروم ۱۵۵

منتشر شده: ۸ سپتامبر ۲۰۲۶

از نسخه ۱۵۵ کروم، کروم نحوه اعمال محدودیت‌های سیاست‌های سازمانی بر افزونه‌ها را با استفاده از API مربوط به chrome.debugger به‌روزرسانی می‌کند.

این تغییر فقط روی افزونه‌هایی که روی مرورگرهای مدیریت‌شده‌ای اجرا می‌شوند که در آن‌ها مدیر سیستم صراحتاً قوانین runtime_blocked_hosts ، DisableScreenshots یا پیشگیری از دست رفتن داده‌ها (DLP) را پیکربندی کرده است، تأثیر می‌گذارد.

اگر یک افزونه روی یک مرورگر مدیریت نشده یا در یک محیط سازمانی بدون این محدودیت‌های خاص سیاست اجرا شود، chrome.debugger بدون هیچ تغییری به طور عادی به کار خود ادامه می‌دهد.

جدول زمانی و نحوه‌ی انتشار

  • نسخه بتای کروم ۱۵۵: ۱۶ سپتامبر ۲۰۲۶
  • انتشار پایدار کروم ۱۵۵: ۶ اکتبر ۲۰۲۶

تغییرات کلیدی در کروم ۱۵۵

تغییرات زیر فقط بر مرورگرهای مدیریت‌شده توسط سازمان تأثیر می‌گذارند:

  • محدودیت‌های میزبان: اگر یک سیاست سازمانی ( ExtensionSettings ) فهرست میزبان‌های مسدود شده‌ی غیر خالی ( runtime_blocked_hosts ) را برای یک افزونه پیکربندی کند، chrome.debugger.attach() در تمام اهداف با موارد زیر رد می‌شود:

    "Host access is restricted by policy."

    این مورد حتی اگر origin های خاصی در runtime_allowed_hosts گنجانده شده باشند، صادق است.

  • محدودیت‌های اسکرین‌شات و DLP: اگر گرفتن اسکرین‌شات توسط یک سیاست سازمانی (قوانین DisableScreenshots یا Data Loss Prevention (DLP)) غیرفعال شده باشد، chrome.debugger.attach() با موارد زیر ناموفق عمل می‌کند:

    "Screenshot capture is restricted by policy."

پروفایل‌های شخصی و محیط‌های مدیریت نشده همچنان مانند قبل به chrome.debugger دسترسی نامحدود دارند.

رابط برنامه‌نویسی کاربردی chrome.debugger دسترسی مستقیم به پروتکل توسعه‌دهندگان کروم (CDP) را برای قابلیت‌های قدرتمند، از جمله ارزیابی دلخواه اسکریپت و رهگیری شبکه، فراهم می‌کند. از آنجا که CDP تحت مدل مبدأ پلتفرم وب عمل می‌کند، فیلترینگ مبتنی بر مبدأ نمی‌تواند آن را به طور ایمن محدود کند، بنابراین کروم ۱۵۵ این مشکل را با یک مدل همه یا هیچ حل می‌کند و سیاست‌های سازمانی را از قبل در فراخوانی chrome.debugger.attach() اعتبارسنجی می‌کند.

با ظرافت، رد اتصالات را مدیریت کنید

همیشه در کد افزونه خود، موارد عدم پذیرش پیوست را مدیریت کنید تا بازخورد واضحی به کاربران سازمانی ارائه دهید:

// Promise-based (Manifest V3)
try {
  await chrome.debugger.attach({ tabId }, "1.3");
} catch (error) {
  if (error.message.includes("Host access is restricted by policy")) {
    console.warn("Debugger attach blocked: Extension has host restrictions configured by enterprise policy.");
  } else if (error.message.includes("Screenshot capture is restricted by policy")) {
    console.warn("Debugger attach blocked: Screenshots or DLP restrictions are enforced by enterprise policy.");
  } else {
    console.warn("Debugger attach failed:", error.message);
  }
}

// Callback-based
chrome.debugger.attach({ tabId }, "1.3", () => {
  if (chrome.runtime.lastError) {
    console.warn("Debugger attach failed:", chrome.runtime.lastError.message);
  }
});

API های سطح بالای جایگزین را در نظر بگیرید

اگر افزونه‌ی شما الزاماً به دسترسی مستقیم به CDP نیاز ندارد، مهاجرت به APIهای افزونه‌ی سطح بالاتر را که از مجوزهای میزبان جزئی پشتیبانی می‌کنند و در کنار لیست‌های مجاز و مسدودکننده‌ی میزبان سازمانی کار می‌کنند، ارزیابی کنید:

  • از API chrome.scripting برای اجرای اسکریپت‌ها و درج سبک‌ها در صفحات مجاز استفاده کنید.
  • از API chrome.declarativeNetRequest برای بررسی، تغییر یا مسدود کردن درخواست‌های شبکه به صورت اعلانی استفاده کنید.
  • از API مربوط به chrome.cookies با مجوزهای میزبان استاندارد استفاده کنید.

راهنمایی برای مدیران سازمان‌ها

مدیران سازمانی که سیاست‌های افزونه‌ها را مدیریت می‌کنند باید توجه داشته باشند که افزونه‌هایی که به مجوز اشکال‌زدایی نیاز دارند، نمی‌توانند با محدودیت‌های جزئی میزبان ( runtime_blocked_hosts ) کار کنند. اگر افزونه‌ای chrome.debugger نیاز دارد، نباید میزبان‌های مسدود شده‌ای در ExtensionSettings پیکربندی کرده باشد.

اگر ضبط اسکرین‌شات با استفاده از DisableScreenshots یا قوانین پیشگیری از دست رفتن داده‌ها (DLP) غیرفعال شود، تابع chrome.debugger.attach() با شکست مواجه خواهد شد.

سازمان‌هایی که به لیست‌های مسدودکننده میزبان یا محدودیت‌های اسکرین‌شات نیاز دارند، باید بررسی کنند که آیا افزونه‌های داخلی یا تأییدشده‌شان می‌توانند به APIهای سطح بالاتر مانند chrome.scripting یا chrome.declarativeNetRequest منتقل شوند یا خیر.

بازخورد را به اشتراک بگذارید

برای جزئیات بیشتر، به مستندات API مربوط به chrome.debugger مراجعه کنید. در صورت داشتن هرگونه سوال یا بازخورد، با گروه Google Extensions Chromium تماس بگیرید.