@conference {300601,
	title = {Jigsaw: Efficient, Low-effort Mashup Isolation},
	booktitle = {USENIX WebApps},
	year = {2012},
	address = {Boston, MA},
	abstract = {A web application often includes content from a variety\&nbsp;of origins. Securing such a mashup application\&nbsp;is challenging because origins often distrust each other\&nbsp;and wish to expose narrow interfaces to their private\&nbsp;code and data. Jigsaw is a new framework for isolating\&nbsp;these mashup components. Jigsaw is an extension of\&nbsp;the JavaScript language that can be run inside standard\&nbsp;browsers using a Jigsaw-to-JavaScript compiler. Unlike\&nbsp;prior isolation schemes that require developers to\&nbsp;specify complex, error-prone policies, Jigsaw leverages\&nbsp;the well-understood public/private keywords from traditional\&nbsp;object-oriented languages, making it easy for a domain\&nbsp;to tag internal data as externally visible. Jigsaw\&nbsp;provides strong iframe-like isolation, but unlike previous\&nbsp;approaches that use actual iframes as isolation containers,\&nbsp;Jigsaw allows mutually distrusting code to run\&nbsp;inside the same frame; this allows scripts to share state\&nbsp;using synchronous method calls instead of asynchronous\&nbsp;message passing. Jigsaw also introduces a novel encapsulation\&nbsp;mechanism called surrogates. Surrogates allow\&nbsp;domains to safely exchange objects by reference instead\&nbsp;of by value. This improves sharing efficiency by eliminating\&nbsp;cross-origin marshaling overhead.},
	url = {http://scholar.harvard.edu/files/mickens/files/jigsaw.pdf},
	author = {James Mickens and Matthew Finifter}
}
