Skip to content

Commit 5093589

Browse files
committed
Java: Refactor XSS.ql
1 parent d839b40 commit 5093589

File tree

1 file changed

+12
-11
lines changed
  • java/ql/src/Security/CWE/CWE-079

1 file changed

+12
-11
lines changed

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

+12-11
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,26 @@
1414
import java
1515
import semmle.code.java.dataflow.FlowSources
1616
import semmle.code.java.security.XSS
17-
import DataFlow::PathGraph
1817

19-
class XssConfig extends TaintTracking::Configuration {
20-
XssConfig() { this = "XSSConfig" }
18+
module XssConfig implements DataFlow::ConfigSig {
19+
predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
2120

22-
override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
21+
predicate isSink(DataFlow::Node sink) { sink instanceof XssSink }
2322

24-
override predicate isSink(DataFlow::Node sink) { sink instanceof XssSink }
23+
predicate isBarrier(DataFlow::Node node) { node instanceof XssSanitizer }
2524

26-
override predicate isSanitizer(DataFlow::Node node) { node instanceof XssSanitizer }
25+
predicate isBarrierOut(DataFlow::Node node) { node instanceof XssSinkBarrier }
2726

28-
override predicate isSanitizerOut(DataFlow::Node node) { node instanceof XssSinkBarrier }
29-
30-
override predicate isAdditionalTaintStep(DataFlow::Node node1, DataFlow::Node node2) {
27+
predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) {
3128
any(XssAdditionalTaintStep s).step(node1, node2)
3229
}
3330
}
3431

35-
from DataFlow::PathNode source, DataFlow::PathNode sink, XssConfig conf
36-
where conf.hasFlowPath(source, sink)
32+
module XssFlow = TaintTracking::Make<XssConfig>;
33+
34+
import XssFlow::PathGraph
35+
36+
from XssFlow::PathNode source, XssFlow::PathNode sink
37+
where XssFlow::hasFlowPath(source, sink)
3738
select sink.getNode(), source, sink, "Cross-site scripting vulnerability due to a $@.",
3839
source.getNode(), "user-provided value"

0 commit comments

Comments
 (0)