@@ -13,14 +13,28 @@ import semmle.javascript.security.dataflow.NosqlInjection
1313import semmle.javascript.security.dataflow.SqlInjection
1414import semmle.javascript.security.dataflow.TaintedPath
1515import semmle.javascript.security.dataflow.DomBasedXss
16+ import evaluation.EndToEndEvaluation
1617
1718int numAlerts ( DataFlow:: Configuration cfg ) {
18- result = count ( DataFlow:: Node source , DataFlow:: Node sink | cfg .hasFlow ( source , sink ) )
19+ result =
20+ count ( DataFlow:: Node source , DataFlow:: Node sink |
21+ cfg .hasFlow ( source , sink ) and not isFlowExcluded ( source , sink )
22+ )
1923}
2024
2125select numAlerts ( any ( NosqlInjection:: Configuration cfg ) ) as numNosqlAlerts ,
2226 numAlerts ( any ( SqlInjection:: Configuration cfg ) ) as numSqlAlerts ,
2327 numAlerts ( any ( TaintedPath:: Configuration cfg ) ) as numTaintedPathAlerts ,
2428 numAlerts ( any ( DomBasedXss:: Configuration cfg ) ) as numXssAlerts ,
25- count ( NosqlInjection:: Sink sink ) as numNosqlSinks , count ( SqlInjection:: Sink sink ) as numSqlSinks ,
26- count ( TaintedPath:: Sink sink ) as numTaintedPathSinks , count ( DomBasedXss:: Sink sink ) as numXssSinks
29+ count ( DataFlow:: Node sink |
30+ exists ( NosqlInjection:: Configuration cfg | cfg .isSink ( sink ) or cfg .isSink ( sink , _) )
31+ ) as numNosqlSinks ,
32+ count ( DataFlow:: Node sink |
33+ exists ( SqlInjection:: Configuration cfg | cfg .isSink ( sink ) or cfg .isSink ( sink , _) )
34+ ) as numSqlSinks ,
35+ count ( DataFlow:: Node sink |
36+ exists ( TaintedPath:: Configuration cfg | cfg .isSink ( sink ) or cfg .isSink ( sink , _) )
37+ ) as numTaintedPathSinks ,
38+ count ( DataFlow:: Node sink |
39+ exists ( DomBasedXss:: Configuration cfg | cfg .isSink ( sink ) or cfg .isSink ( sink , _) )
40+ ) as numXssSinks
0 commit comments