Static enforcement of web application integrity through strong typing

William Robertson, Giovanni Vigna

2009 · 67 citations · 32 references

Concepts

TL;DR

Security vulnerabilities continue to plague web applications, allowing attackers to access sensitive data and co‑opt legitimate web sites as a hosting ground for malware. This paper presents a different approach to web application security. We present a web application framework that leverages strong type systems to statically enforce a separation between the structure and content of web documents and database queries, thereby automatically preventing server‑side cross‑site scripting and SQL injection, and we evaluate its coverage and correctness of sanitization functions. Experimental results show that applications built with this framework perform competitively with those developed using traditional frameworks.

Abstract

Security vulnerabilities continue to plague web applications, allowing attackers to access sensitive data and co-opt legitimate web sites as a hosting ground for malware. Accordingly, researchers have focused on various approaches to detecting and preventing common classes of security vulnerabilities in web applications, including anomaly-based detection mechanisms, static and dynamic analyses of server-side web application code, and client-side security policy enforcement. This paper presents a different approach to web application security. In this work, we present a web application framework that leverages existing work on strong type systems to statically enforce a separation between the structure and content of both web documents and database queries generated by a web application, and show how this approach can automatically prevent the introduction of both server-side cross-site scripting and SQL injection vulnerabilities. We present an evaluation of the framework, and demonstrate both the coverage and correctness of our sanitization functions. Finally, experimental results suggest that web applications developed using this framework perform competitively with applications developed using traditional frameworks.

References

32