JS: refactor DefaultUrlRequest: extract the request library

This commit is contained in:
Esben Sparre Andreasen
2018-09-03 12:58:07 +02:00
parent 80b81b07c5
commit d7a81ef8ef

View File

@@ -62,23 +62,6 @@ private class DefaultUrlRequest extends CustomUrlRequest {
DefaultUrlRequest() {
exists (string moduleName, DataFlow::SourceNode callee |
this = callee.getACall() |
(
(
moduleName = "request" or
moduleName = "request-promise" or
moduleName = "request-promise-any" or
moduleName = "request-promise-native"
) and
(
callee = DataFlow::moduleImport(moduleName) or
callee = DataFlow::moduleMember(moduleName, httpMethodName())
) and
(
url = getArgument(0) or
url = getOptionArgument(0, urlPropertyName())
)
)
or
(
moduleName = "superagent" and
callee = DataFlow::moduleMember(moduleName, httpMethodName()) and
@@ -137,4 +120,38 @@ private class DefaultUrlRequest extends CustomUrlRequest {
result = url
}
}
/**
* A model of a URL request in the `request` library.
*/
private class RequestUrlRequest extends CustomUrlRequest {
DataFlow::Node url;
RequestUrlRequest() {
exists (string moduleName, DataFlow::SourceNode callee |
this = callee.getACall() |
(
moduleName = "request" or
moduleName = "request-promise" or
moduleName = "request-promise-any" or
moduleName = "request-promise-native"
) and
(
callee = DataFlow::moduleImport(moduleName) or
callee = DataFlow::moduleMember(moduleName, httpMethodName())
) and
(
url = getArgument(0) or
url = getOptionArgument(0, urlPropertyName())
)
)
}
override DataFlow::Node getUrl() {
result = url
}
}