Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering 2014
DOI: 10.1145/2642937.2643017
|View full text |Cite
|
Sign up to set email alerts
|

Static, lightweight includes resolution for PHP

Abstract: Dynamic languages include a number of features that are challenging to model properly in static analysis tools. In PHP, one of these features is the include expression, where an arbitrary expression provides the path of the file to include at runtime. In this paper we present two complementary analyses for statically resolving PHP includes, one that works at the level of individual PHP files and one targeting PHP programs, possibly consisting of multiple scripts. To evaluate the effectiveness of these analyses… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
6
0

Year Published

2015
2015
2018
2018

Publication Types

Select...
3
2

Relationship

2
3

Authors

Journals

citations
Cited by 11 publications
(6 citation statements)
references
References 18 publications
0
6
0
Order By: Relevance
“…We have already started to do so based on our earlier results, creating an analysis for resolving dynamic file inclusion expressions that is effective in many cases [18]. Similarly, we plan to investigate patterns of use for variable properties that can be leveraged to increase the precision of the type analysis we are currently building for PHP, and we are investigating dynamic techniques for better dealing with variable features and dynamic function invocations, especially those related to plugins.…”
Section: Discussionmentioning
confidence: 99%
“…We have already started to do so based on our earlier results, creating an analysis for resolving dynamic file inclusion expressions that is effective in many cases [18]. Similarly, we plan to investigate patterns of use for variable properties that can be leveraged to increase the precision of the type analysis we are currently building for PHP, and we are investigating dynamic techniques for better dealing with variable features and dynamic function invocations, especially those related to plugins.…”
Section: Discussionmentioning
confidence: 99%
“…The three file inclusion expressions show examples of dynamic behavior, such as calls to the dirname function, string concatenation, magic constants (e.g., __FILE__), and string splicing (where a variable is used directly inside a string, with or without curly braces). We created two analysis algorithms to statically compute which files could be included by each file inclusion expression [15]. One algorithm, FLRES, is used to quickly compute possible includes for a specific expression, while the other, PGRES, is a more precise algorithm that works given a script as an entry point into the site (i.e., a script that a user would navigate to on the web, instead of a script that is only ever included by other scripts) instead of looking at the script in isolation as is done by FLRES.…”
Section: Program Analysismentioning
confidence: 99%
“…The program analysis algorithms are tuned for specific usage scenarios, so the FLRES dynamic file inclusion resolution algorithm [15], which is intended to be used in an IDE, generally runs in under 50 milliseconds (with some outliers taking longer), while PGRES, which is intended to resolve dynamic includes as part of a more powerful analysis [15], takes, on average, 21 seconds.…”
Section: Implementation Challengesmentioning
confidence: 99%
See 2 more Smart Citations