@@ -29,33 +29,29 @@ class XssAdditionalTaintStep extends Unit {
29
29
abstract predicate step ( DataFlow:: Node node1 , DataFlow:: Node node2 ) ;
30
30
}
31
31
32
+ private class DefaultXssSinkModel extends SinkModelCsv {
33
+ override predicate row ( string row ) {
34
+ row =
35
+ [
36
+ "javax.servlet.http;HttpServletResponse;false;sendError;(int,String);;Argument[1];xss" ,
37
+ "android.webkit;WebView;false;loadData;;;Argument[0];xss" ,
38
+ "android.webkit;WebView;false;loadUrl;;;Argument[0];xss" ,
39
+ "android.webkit;WebView;false;loadDataWithBaseURL;;;Argument[1];xss"
40
+ ]
41
+ }
42
+ }
43
+
32
44
/** A default sink representing methods susceptible to XSS attacks. */
33
45
private class DefaultXssSink extends XssSink {
34
46
DefaultXssSink ( ) {
35
47
sinkNode ( this , "xss" )
36
48
or
37
- exists ( HttpServletResponseSendErrorMethod m , MethodAccess ma |
38
- ma .getMethod ( ) = m and
39
- this .asExpr ( ) = ma .getArgument ( 1 )
40
- )
41
- or
42
49
exists ( ServletWriterSourceToWritingMethodFlowConfig writer , MethodAccess ma |
43
50
ma .getMethod ( ) instanceof WritingMethod and
44
51
writer .hasFlowToExpr ( ma .getQualifier ( ) ) and
45
52
this .asExpr ( ) = ma .getArgument ( _)
46
53
)
47
54
or
48
- exists ( Method m |
49
- m .getDeclaringType ( ) instanceof TypeWebView and
50
- (
51
- m .getAReference ( ) .getArgument ( 0 ) = this .asExpr ( ) and m .getName ( ) = "loadData"
52
- or
53
- m .getAReference ( ) .getArgument ( 0 ) = this .asExpr ( ) and m .getName ( ) = "loadUrl"
54
- or
55
- m .getAReference ( ) .getArgument ( 1 ) = this .asExpr ( ) and m .getName ( ) = "loadDataWithBaseURL"
56
- )
57
- )
58
- or
59
55
exists ( SpringRequestMappingMethod requestMappingMethod , ReturnStmt rs |
60
56
requestMappingMethod = rs .getEnclosingCallable ( ) and
61
57
this .asExpr ( ) = rs .getResult ( ) and
0 commit comments