mirror of
https://github.com/github/codeql.git
synced 2025-12-17 17:23:36 +01:00
35 lines
973 B
Plaintext
35 lines
973 B
Plaintext
/**
|
|
* @kind problem
|
|
*/
|
|
|
|
import javascript
|
|
import experimental.poi.PoI
|
|
import DataFlow
|
|
|
|
class RouteHandlerPoI extends ActivePoI {
|
|
RouteHandlerPoI() { this = "RouteHandlerPoI" }
|
|
|
|
override predicate is(Node l0) { l0 instanceof Express::RouteHandler }
|
|
}
|
|
|
|
class RouteHandlerAndSetupPoI extends ActivePoI {
|
|
RouteHandlerAndSetupPoI() { this = "RouteHandlerAndSetupPoI" }
|
|
|
|
override predicate is(Node l0, Node l1, string t1) {
|
|
l1.asExpr().(Express::RouteSetup).getARouteHandler() = l0 and t1 = "setup"
|
|
}
|
|
}
|
|
|
|
class RouteSetupAndRouterAndRouteHandlerPoI extends ActivePoI {
|
|
RouteSetupAndRouterAndRouteHandlerPoI() { this = "RouteSetupAndRouterAndRouteHandlerPoI" }
|
|
|
|
override predicate is(Node l0, Node l1, string t1, Node l2, string t2) {
|
|
l0.asExpr().(Express::RouteSetup).getRouter().flow() = l1 and
|
|
t1 = "router" and
|
|
l0.asExpr().(Express::RouteSetup).getARouteHandler() = l2 and
|
|
t2 = "routehandler"
|
|
}
|
|
}
|
|
|
|
query predicate problems = alertQuery/6;
|