Skip to content

Commit e02319b

Browse files
committed
add end to end predicate to result counting query
1 parent 9196b64 commit e02319b

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

javascript/ql/experimental/adaptivethreatmodeling/modelbuilding/extraction/CountAlertsAndEndpoints.ql

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,28 @@ import semmle.javascript.security.dataflow.NosqlInjection
1313
import semmle.javascript.security.dataflow.SqlInjection
1414
import semmle.javascript.security.dataflow.TaintedPath
1515
import semmle.javascript.security.dataflow.DomBasedXss
16+
import evaluation.EndToEndEvaluation
1617

1718
int 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

2125
select 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

Comments
 (0)