2017 · 36 citations · 15 references
ComputingComputer ScienceInformation TechnologyProgramming LanguagesWeb SecurityWeb TechnologiesApplication Programming InterfacesWeb ApisWeb Application SecurityJavascriptJavascript SecurityPayload ExtractionString Analysis
Many JavaScript applications perform HTTP requests to web APIs, relying on the request URL, HTTP method, and request data to be constructed correctly by string operations. Traditional compile-time error checking, such as calling a non-existent method in Java, are not available for checking whether such requests comply with the requirements of a web API. In this paper, we propose an approach to statically check web API requests in JavaScript. Our approach first extracts a request's URL string, HTTP method, and the corresponding request data using an inter-procedural string analysis, and then checks whether the request conforms to given web API specifications. We evaluated our approach by checking whether web API requests in JavaScript files mined from GitHub are consistent or inconsistent with publicly available API specifications. From the 6575 requests in scope, our approach determined whether the request's URL and HTTP method was consistent or inconsistent with web API specifications with a precision of 96.0%. Our approach also correctly determined whether extracted request data was consistent or inconsistent with the data requirements with a precision of 87.9% for payload data and 99.9% for query data. In a systematic analysis of the inconsistent cases, we found that many of them were due to errors in the client code. The here proposed checker can be integrated with code editors or with continuous integration tools to warn programmers about code containing potentially erroneous requests.
15
Jalangi: a selective record-replay and dynamic analysis framework for JavaScript
Koushik Sen, Swaroop Kalasapur, Tasneem Brutch et al. · 2013 · 271 citations
Determinacy in static analysis for jQuery
Esben Andreasen, Anders Møller · 2014 · 95 citations
Efficient construction of approximate call graphs for JavaScript IDE services
Asger Feldthaus, Max Schäfer, Manu Sridharan et al. · 2013 · 81 citations