Using web application construction frameworks to protect against code injection attacks
- 14 June 2007
- conference paper
- Published by Association for Computing Machinery (ACM)
Abstract
In recent years, the security landscape has changed, with Web applications vulnerabilities becoming more prominent that vulnerabilities stemming from the lack of type safety, such as buffer overruns. Many reports point to code injection attacks such as cross-site scripting and RSS injection as being the most common attacks against Web applications to date. With Web 2.0 existing security problems are further exacerbated by the advent of Ajax technology that allows one to create and compose HTML content from different sources within the browser at runtime, as exemplified by customizable mashup pages like My Yahoo! or Live.com This paper proposes a simple to support, yet a powerful scheme for eliminating a wide range of script injection vulnerabilities in applications built on top of popular Ajax development frameworks such as the Dojo Toolkit, prototype.js, and AJAX.NET. Unlike other client-side runtime enforcement proposals, the approach we are advocating requires only minor browser modifications. This is because our proposal can be viewed as a natural finer-grained extension of the same-origin policy for JavaScript already supported by the majority of mainstream browsers, in which we treat individual user interface widgets as belonging to separate domains Fortunately, in many cases no changes to the development process need to take place: for applications that are built on top of frameworks described above, a slight framework modification will result in appropriate changes in the generated HTML, completely obviating the need for manual code annotation. In this paper we demonstrate how these changes can prevent cross-site scripting and RSS injection attacks using the Dojo Toolkit, a popular Ajax library, as an example.Keywords
This publication has 12 references indexed in Scilit:
- Defeating script injection attacks with browser-enforced embedded policiesPublished by Association for Computing Machinery (ACM) ,2007
- JavaScript instrumentation for browser securityPublished by Association for Computing Machinery (ACM) ,2007
- NoxesPublished by Association for Computing Machinery (ACM) ,2006
- Thorough static analysis of device driversPublished by Association for Computing Machinery (ACM) ,2006
- Dynamic Taint Propagation for JavaPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2006
- Defending Against Injection Attacks Through Context-Sensitive String EvaluationPublished by Springer Nature ,2006
- Finding application errors and security flaws using PQLPublished by Association for Computing Machinery (ACM) ,2005
- Automatically Hardening Web Applications Using Precise TaintingPublished by Springer Nature ,2005
- Securing web application code by static analysis and runtime protectionPublished by Association for Computing Machinery (ACM) ,2004
- A system and language for building system-specific, static analysesPublished by Association for Computing Machinery (ACM) ,2002