Code Monkey home page Code Monkey logo

sandbox_test's Introduction

IFRAME sandbox exploration

Simple exploration of IFRAME sandbox with allow scripts and allow-same-origin. This was prompted by discussion of sandbox here.

When the embedded document has the same origin as the embedding page, it is strongly discouraged to use both allow-scripts and allow-same-origin, as that lets the embedded document remove the sandbox attribute โ€” making it no more secure than not using the sandbox attribute at all.

Unfortunately, the document doesn't provide details of what the issue is but after further research it turns out that it's pointless to sandbox if the parent of the IFRAME and the IFRAME are loaded from the same domain (i.e. same origin). If the parent of the IFRAME and IFRAME are loaded from different domains the sandbox is enforced.

This little app(?) demonstrates the issues. There are three options, two of which the sandbox has no effect, the third which does.

  1. IFRAME uses src and as such is loaded from the same domain as the parent. Pointless.
  2. IFRAME uses srcdoc and as such is treated as loaded from the same domain as the parent. Pointless.
  3. IFRAME uses src with the srcdoc encoded as a data attribute (src="data:text/html;base64,CiAgPCFk...bWw+CiAg"). This actually honors the sandbox.

A running demo can be found here.

Install

npm install or yarn

Run

yarn start-http or npm run start-http

Connect to http://localhost:8080

sandbox_test's People

Contributors

bryans99 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.