مانیفست - جعبه شنی

هشدار: از نسخه ۵۷ به بعد، کروم دیگر اجازه نمایش محتوای وب خارجی (از جمله فریم‌ها و اسکریپت‌های جاسازی‌شده) را در صفحات سندباکس نمی‌دهد. لطفاً به جای آن از یک وب‌ویو استفاده کنید.

مجموعه‌ای از صفحات برنامه یا افزونه را تعریف می‌کند که قرار است در یک مبدأ منحصر به فردِ سندباکس‌شده ارائه شوند، و به صورت اختیاری یک سیاست امنیتی محتوا برای استفاده با آنها تعریف می‌کند. قرار گرفتن در سندباکس دو پیامد دارد:

  1. یک صفحه‌ی سندباکس‌شده به APIهای افزونه یا برنامه و همچنین به صفحات غیر سندباکس‌شده دسترسی مستقیم نخواهد داشت (ممکن است از طریق postMessage() با آنها ارتباط برقرار کند).
  2. یک صفحه‌ی سندباکس شده تابع سیاست امنیتی محتوا (CSP) مورد استفاده توسط بقیه‌ی برنامه یا افزونه نیست (مقدار CSP جداگانه‌ی خودش را دارد). این یعنی، برای مثال، می‌تواند از اسکریپت درون‌خطی و eval استفاده کند.

    برای مثال، در اینجا نحوه‌ی مشخص کردن دو صفحه‌ی افزونه که قرار است در یک سندباکس با یک CSP سفارشی ارائه شوند، آورده شده است:

    {
      ...
      "sandbox": {
        "pages": [
          "page1.html",
          "directory/page2.html"
        ]
        // content_security_policy is optional.
        "content_security_policy":
            "sandbox allow-scripts; script-src 'self'"
      ],
      ...
    }
    

    اگر مشخص نشده باشد، مقدار پیش‌فرض content_security_policy برابر است sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self'; . شما می‌توانید مقدار CSP خود را برای محدود کردن بیشتر sandbox مشخص کنید، اما باید دارای دستورالعمل sandbox باشد و ممکن است توکن allow-same-origin نداشته باشد (برای توکن‌های sandbox ممکن به مشخصات HTML5 مراجعه کنید). همچنین، CSP که مشخص می‌کنید ممکن است اجازه بارگیری محتوای وب خارجی را در صفحات sandbox شده ندهد.

توجه داشته باشید که فقط باید صفحاتی را فهرست کنید که انتظار دارید در پنجره‌ها یا فریم‌ها بارگذاری شوند. منابعی که توسط صفحات sandboxed استفاده می‌شوند (مثلاً stylesheets یا فایل‌های منبع جاوا اسکریپت) نیازی به نمایش در لیست sandboxed_page ندارند، آنها از sandbox صفحه‌ای که آنها را در خود جای داده است استفاده می‌کنند.

«استفاده از eval در افزونه‌های کروم. به صورت ایمن.» به جزئیات بیشتری در مورد پیاده‌سازی یک گردش کار sandboxing می‌پردازد که امکان استفاده از کتابخانه‌هایی را فراهم می‌کند که در غیر این صورت در اجرای تحت سیاست امنیتی محتوای پیش‌فرض افزونه با مشکل مواجه می‌شدند.

صفحه‌ی سندباکس شده را فقط می‌توان هنگام استفاده از manifest_version 2 یا بالاتر مشخص کرد.