Abstract Domains for Type Juggling

被引:9
作者
Arceri V. [1 ]
Maffeis S. [2 ]
机构
[1] Department of Computer Science, University of Verona
[2] Department of Computing, Imperial College, London
基金
英国工程与自然科学研究理事会;
关键词
Abstract interpretation; PHP; Static analysis; Type conversions;
D O I
10.1016/j.entcs.2017.02.003
中图分类号
学科分类号
摘要
Web scripting languages, such as PHP and JavaScript, provide a wide range of dynamic features that make them both flexible and error-prone. In order to prevent bugs in web applications, there is a sore need for powerful static analysis tools. In this paper, we investigate how Abstract Interpretation may be leveraged to provide a precise value analysis providing rich typing information that can be a useful component for such tools. In particular, we define the formal semantics for a core of PHP that illustrates type juggling, the implicit type conversions typical of PHP, and investigate the design of abstract domains and operations that, while still scalable, are expressive enough to cope with type juggling. We believe that our approach can also be applied to other languages with implicit type conversions. © 2017 The Author(s)
引用
收藏
页码:41 / 55
页数:14
相关论文
共 11 条
[1]  
Cousot P., Types as abstract interpretations, POPL'97, (1997)
[2]  
Cousot P., Cousot R., Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints, POPL'77, (1977)
[3]  
Cousot P., Cousot R., Systematic design of program analysis frameworks, POPL'79, (1979)
[4]  
Dahse J., Holz T., Simulation of built-in PHP features for precise static code analysis, NDSS'14, (2014)
[5]  
Filaretti D., Maffeis S., An executable formal semantics of PHP, ECOOP'14, (2014)
[6]  
Giacobazzi R., Ranzato F., Scozzari F., Making abstract interpretations complete, J. ACM, (2000)
[7]  
Hauzar D., Kofron J., Framework for static analysis of PHP applications, ECOOP'15, (2015)
[8]  
Jensen S.H., Moller A., Thiemann P., Type analysis for javascript, SAS'09, (2009)
[9]  
Jovanovic N., Krugel C., Kirda Pixy E., A static analysis tool for detecting web application vulnerabilities (short paper), (S&P'06), (2006)
[10]  
Kashyap V., Dewey K., Kuefner E.A., Wagner J., Gibbons K., Sarracino J., Wiedermann B., Hardekopf B., JSAI: a static analysis platform for javascript, FSE'14, (2014)