Research Article
Preventing Cross Site Request Forgery Attacks
@INPROCEEDINGS{10.1109/SECCOMW.2006.359531, author={Nenad Jovanovic and Engin Kirda and Christopher Kruegel}, title={Preventing Cross Site Request Forgery Attacks}, proceedings={2nd International ICST Conference on Security and Privacy in Comunication Networks}, publisher={IEEE}, proceedings_a={SECURECOMM}, year={2007}, month={5}, keywords={}, doi={10.1109/SECCOMW.2006.359531} }
- Nenad Jovanovic
Engin Kirda
Christopher Kruegel
Year: 2007
Preventing Cross Site Request Forgery Attacks
SECURECOMM
IEEE
DOI: 10.1109/SECCOMW.2006.359531
Abstract
The Web has become an indispensable part of our lives. Unfortunately, as our dependency on the Web increases, so does the interest of attackers in exploiting Web applications and Web-based information systems. Previous work in the field of Web application security has mainly focused on the mitigation of cross site scripting (XSS) and SQL injection attacks. In contrast, cross site request forgery (XSRF) attacks have not received much attention. In an XSRF attack, the trust of a Web application in its authenticated users is exploited by letting the attacker make arbitrary HTTP requests on behalf of a victim user. The problem is that Web applications typically act upon such requests without verifying that the performed actions are indeed intentional. Because XSRF is a relatively new security problem, it is largely unknown by Web application developers. As a result, there exist many Web applications that are vulnerable to XSRF. Unfortunately, existing mitigation approaches are time-consuming and error-prone, as they require manual effort to integrate defense techniques into existing systems. In this paper, we present a solution that provides a completely automatic protection from XSRF attacks. More precisely, our approach is based on a server-side proxy that detects and prevents XSRF attacks in a way that is transparent to users as well as to the Web application itself. We provide experimental results that demonstrate that we can use our prototype to secure a number of popular open-source Web applications, without negatively affecting their behavior