Sandbox

Internet Explorer 10 and Windows apps using JavaScript introduce support for the sandbox attribute. The sandbox attribute enables security restrictions for iframe elements that contain untrusted content. These restrictions enhance security by preventing untrusted content from performing actions that can lead to potentially malicious behavior.

The sandbox attribute is specified in Section 4.8.2 of the World Wide Web Consortium (W3C)’s HTML5 specification.

Enabling sandbox

To enable these restrictions, specify the sandbox attribute, as shown in the following code example.

<iframe sandbox src="frame1.html"></iframe>

When the sandbox attribute is specified for an iframe element, the content in the iframe element is said to be sandboxed.

Behavior restricted by sandbox

When iframe elements are sandboxed, the following actions are restricted:

  • Sandboxed content cannot open pop-up windows or new browser windows. Methods that open pop-up windows (such as createPopup(), showModalDialog(), showModelessDialog(), and window.open()), fail silently.
  • Links cannot be opened in new windows.
  • Sandboxed content is considered to be from a unique domain, which prevents access to APIs that are protected by the same-origin policy such as cookies, local storage, and the Document Object Model (DOM) of other documents.
  • The top window cannot be navigated by sandboxed content.
  • Sandboxed content cannot submit form data.
  • Plugins (object, applet, embed, or frame) do not instantiate.
  • Automatic element behavior is disabled, including meta element refresh, autofocus for input controls, and autoplay for audio and video elements.
  • Selected features proprietary to Windows Internet Explorer are disabled for sandboxed content, including HTML Components (HTCs), binary behaviors, databinding, and window.external.

Customizing sandbox restrictions

Internet Explorer 10 and Windows apps using JavaScript enable you to customize selected sandbox restrictions. To do so, specify one or more of the following customization flags as the value of the sandbox attribute.

Flag Description

allow-scripts

Sandboxed content is allowed to run JavaScript.

allow-forms

Sandboxed content can submit forms.

allow-same-origin

Sandboxed content can access APIs protected by the same-origin policy, including local storage, cookies, XMLHttpRequest, and documents hosted on the same domain.

allow-top-navigation

Sandboxed content is allowed to change the location of the top window.

allow-popups

Sandboxed content is allowed to open popup windows.

Note  Pre-release versions of Internet Explorer 10 supported this value using a vendor prefix. Applications that use a vendor-prefix for this value should be updated to ensure future compatibility and standards-compliance.
 

 

The following example shows a sandboxed iframe element that uses customization flags to customize the restrictions for the content in the element.

<iframe sandbox="allow-forms allow-same-origin" src="frame1.html"></iframe>

This example permits form submission and access to local data sources. Be aware that multiple customization flags are separated by spaces.

For a hands-on demonstration of HTML5 Sandbox in action, see Defense in Depth: HTML5 Sandbox on the IE Test Drive.

API Reference

sandbox

Internet Explorer Test Drive demos

Defense in Depth: HTML5 Sandbox

IEBlog posts

Defense in Depth: Locking Down Mash-Ups with HTML5 Sandbox

Specification

HTML5: Sections 4.8.2, 5.4

How to Safeguard your Site with HTML5 Sandbox