Skip to content

Commit 1add692

Browse files
committed
Move XssConfig to XssQuery.qll
1 parent 19a94a5 commit 1add692

File tree

2 files changed

+27
-19
lines changed

2 files changed

+27
-19
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/** Provides a taint tracking configuration to track cross site scripting. */
2+
3+
import java
4+
import semmle.code.java.dataflow.FlowSources
5+
import semmle.code.java.dataflow.TaintTracking
6+
import semmle.code.java.security.XSS
7+
8+
/**
9+
* A taint-tracking configuration for cross site scripting vulnerabilities.
10+
*/
11+
module XssConfig implements DataFlow::ConfigSig {
12+
predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
13+
14+
predicate isSink(DataFlow::Node sink) { sink instanceof XssSink }
15+
16+
predicate isBarrier(DataFlow::Node node) { node instanceof XssSanitizer }
17+
18+
predicate isBarrierOut(DataFlow::Node node) { node instanceof XssSinkBarrier }
19+
20+
predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) {
21+
any(XssAdditionalTaintStep s).step(node1, node2)
22+
}
23+
}
24+
25+
/** Tracks flow from remote sources to cross site scripting vulnerabilities. */
26+
module XssFlow = TaintTracking::Global<XssConfig>;

java/ql/src/Security/CWE/CWE-079/XSS.ql

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,7 @@
1212
*/
1313

1414
import java
15-
import semmle.code.java.dataflow.FlowSources
16-
import semmle.code.java.security.XSS
17-
18-
module XssConfig implements DataFlow::ConfigSig {
19-
predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
20-
21-
predicate isSink(DataFlow::Node sink) { sink instanceof XssSink }
22-
23-
predicate isBarrier(DataFlow::Node node) { node instanceof XssSanitizer }
24-
25-
predicate isBarrierOut(DataFlow::Node node) { node instanceof XssSinkBarrier }
26-
27-
predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) {
28-
any(XssAdditionalTaintStep s).step(node1, node2)
29-
}
30-
}
31-
32-
module XssFlow = TaintTracking::Global<XssConfig>;
33-
15+
import semmle.code.java.security.XssQuery
3416
import XssFlow::PathGraph
3517

3618
from XssFlow::PathNode source, XssFlow::PathNode sink

0 commit comments

Comments
 (0)