@@ -59,14 +59,14 @@ module DomBasedXss {
59
59
class LibrarySink extends Sink , DataFlow:: ValueNode {
60
60
LibrarySink ( ) {
61
61
// call to a jQuery method that interprets its argument as HTML
62
- exists ( JQueryMethodCall call | call .interpretsArgumentAsHtml ( astNode ) |
62
+ exists ( JQuery :: MethodCall call | call .interpretsArgumentAsHtml ( this ) |
63
63
// either the argument is always interpreted as HTML
64
- not call .interpretsArgumentAsSelector ( astNode )
64
+ not call .interpretsArgumentAsSelector ( this )
65
65
or
66
66
// or it doesn't start with something other than `<`, and so at least
67
67
// _may_ be interpreted as HTML
68
68
not exists ( DataFlow:: Node prefix , string strval |
69
- isPrefixOfJQueryHtmlString ( astNode , prefix ) and
69
+ isPrefixOfJQueryHtmlString ( this , prefix ) and
70
70
strval = prefix .getStringValue ( ) and
71
71
not strval .regexpMatch ( "\\s*<.*" )
72
72
) and
@@ -90,9 +90,9 @@ module DomBasedXss {
90
90
* Holds if `prefix` is a prefix of `htmlString`, which may be intepreted as
91
91
* HTML by a jQuery method.
92
92
*/
93
- private predicate isPrefixOfJQueryHtmlString ( Expr htmlString , DataFlow:: Node prefix ) {
94
- any ( JQueryMethodCall call ) .interpretsArgumentAsHtml ( htmlString ) and
95
- prefix = htmlString . flow ( )
93
+ private predicate isPrefixOfJQueryHtmlString ( DataFlow :: Node htmlString , DataFlow:: Node prefix ) {
94
+ any ( JQuery :: MethodCall call ) .interpretsArgumentAsHtml ( htmlString ) and
95
+ prefix = htmlString
96
96
or
97
97
exists ( DataFlow:: Node pred | isPrefixOfJQueryHtmlString ( htmlString , pred ) |
98
98
prefix = StringConcatenation:: getFirstOperand ( pred )
0 commit comments