ACM Home Page
Please provide us with feedback. Feedback
Preventing injection attacks with syntax embeddings
Full text PdfPdf (339 KB)
Source
Generative Programming And Component Engineering archive
Proceedings of the 6th international conference on Generative programming and component engineering table of contents
Salzburg, Austria
SESSION: Session 1 table of contents
Pages: 3 - 12  
Year of Publication: 2007
ISBN:978-1-59593-855-8
Authors
Martin Bravenboer  Delft University of Technology, Delft, Netherlands
Eelco Dolstra  Utrecht University, Utrecht, Netherlands
Eelco Visser  Delft University of Technology, Delft, Netherlands
Sponsors
SIGSOFT: ACM Special Interest Group on Software Engineering
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 18,   Downloads (12 Months): 166,   Citation Count: 2
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1289971.1289975
What is a DOI?

ABSTRACT

Software written in one language often needs to construct sentences in another language, such as SQL queries, XML output, or shell command invocations. This is almost always done using unhygienic string manipulation, the concatenation of constants and client-supplied strings. A client can then supply specially crafted input that causes the constructed sentence to be interpreted in an unintended way, leading to an injection attack. We describe a more natural style of programming that yields code that is impervious to injections by construction. Our approach embeds the grammars of the guest languages (e.g., SQL) into that of the host language (e.g., Java) and automatically generates code that maps the embedded language to constructs in the host language that reconstruct the embedded sentences, adding escaping functions where appropriate. This approach is generic, meaning that it can be applied with relative ease to any combination of host and guest languages.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
ISO/IEC 9075:1992: Database Language SQL. July 1992.
 
2
C. Anley. Advanced SQL injection. http://www.ngssoftware.com/papers/advanced_sql_injection.pdf,all2002.
 
3
C. Anley. (more) Advanced SQL injection. http://www.ngssoftware.com/papers/more_advanced_sql_injection.pdf,all2002.
 
4
 
5
G. Bierman, E. Meijer, and W. Schulte. The essence of data access in Cω. In ECOOP 2005 - Object-Oriented Programming, 19th European Conf., volume 3586 of LNCS, pages 287--311. Springer, July 2005.
6
 
7
M. Bravenboer, R. Vermaas, J. Vinju, and E. Visser. Generalized type-based disambiguation of meta programs with concrete object syntax. In Generative Programming and Component Engineering (GPCE'05), volume 3676 of LNCS, pages 157--172. Springer, Sept. 2005.
8
9
 
10
A. S. Christensen, A. Møller, and M. I. Schwartzbach. Precise analysis of string expressions. In Static Analysis Symposium (SAS '03), volume 2694 of LNCS, pages 1--18. Springer, June 2003.
11
 
12
 
13
14
15
 
16
W. G. Halfond, J. Viegas, and A. Orso. A Classification of SQL-Injection Attacks and Countermeasures. In Proc. of the International Symposium on Secure Software Engineering, Mar. 2006.
 
17
18
19
 
20
 
21
O. Maor and A. Shulman. SQL injection signatures evasion. White paper, http://www.imperva.com/, Apr. 2004.
22
 
23
E. Meijer and D. van Velzen. Haskell Server Pages: Functional programming and the battle for the middle tier. In 2000 ACM SIGPLAN Haskell Workshop, volume 41/1 of ENTCS. Elsevier, Aug. 2001.
 
24
A. Møller. dk.brics.automaton - finite-state automata for Java. http://www.brics.dk/automaton/, 2005.
25
 
26
E. Visser. Syntax Definition for Language Prototyping. PhD thesis, University of Amsterdam, Sept. 1997.
 
27
 
28
E. Visser. Program transformation with Stratego/XT: Rules, strategies, tools, and systems in Stratego/XT 0.9. In C. Lengauer et al., editors, Domain-Specific Program Generation, volume 3016 of LNCS, pages 216--238. Spinger-Verlag, June 2004.
 
29
 
30
D. Zook, S. S. Huang, and Y. Smaragdakis. Generating AspectJ programs with Meta-AspectJ. In Generative Programming and Component Engineering: Third Intl. Conf., GPCE 2004, volume 3286 of LNCS, pages 1--19, Vancouver, Canada, October 2004. Springer.


Collaborative Colleagues:
Martin Bravenboer: colleagues
Eelco Dolstra: colleagues
Eelco Visser: colleagues