File tree Expand file tree Collapse file tree 2 files changed +27
-19
lines changed
lib/semmle/code/java/security Expand file tree Collapse file tree 2 files changed +27
-19
lines changed Original file line number Diff line number Diff line change
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 > ;
Original file line number Diff line number Diff line change 12
12
*/
13
13
14
14
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
34
16
import XssFlow:: PathGraph
35
17
36
18
from XssFlow:: PathNode source , XssFlow:: PathNode sink
You can’t perform that action at this time.
0 commit comments