The Case for JavaScript Transactions (Position Paper)

Mohan Dhawan, Chung-chieh Shan, Vinod Ganapathy.

Proceedings of the ACM SIGPLAN 5th Workshop on Programming Languages and Analysis for Security (PLAS 2010); Article 6, Toronto, Canada, June 10, 2010.

Modern Web applications combine and use JavaScript-based content from multiple untrusted sources. Without proper isolation, such content can compromise the security and privacy of these Web applications. Prior techniques for isolating untrusted JavaScript code do so by restricting dangerous constructs and inlining security checks into third-party code.

This paper presents a new approach that extends the JavaScript language to make isolation a language-level primitive. We propose to extend the language using a new transaction construct that allows a Web application to speculatively execute untrusted code and isolate its changes. The Web application can then inspect these speculative actions and commit them only if they comply with the application’s security policies. We discuss use-cases that can benefit from JavaScript support for transactions, present a formalization of JavaScript transactions and conclude with implementation considerations.

Paper: [ PDF ] (© ACM)
Slides: [ Powerpoint ]
DOI: [ 10.1145/1814217.1814223 ]

Papers page