@@ -43,35 +43,8 @@ class Configuration extends TaintTracking::Configuration {
43
43
or
44
44
exists ( RegexExecution re | nodeFrom = re .getString ( ) and nodeTo = re )
45
45
or
46
- // String methods
47
- exists ( MethodCallNode call , string method_name |
48
- nodeTo = call and call .getMethodName ( ) = method_name
49
- |
50
- call .calls ( nodeFrom , method_name ) and
51
- method_name in [
52
- "capitalize" , "casefold" , "center" , "expandtabs" , "format" , "format_map" , "join" ,
53
- "ljust" , "lstrip" , "lower" , "replace" , "rjust" , "rstrip" , "strip" , "swapcase" , "title" ,
54
- "upper" , "zfill" , "encode" , "decode"
55
- ]
56
- or
57
- method_name = "replace" and
58
- nodeFrom = call .getArg ( 1 )
59
- or
60
- method_name = "format" and
61
- nodeFrom = call .getArg ( _)
62
- or
63
- // str -> List[str]
64
- call .calls ( nodeFrom , method_name ) and
65
- method_name in [ "partition" , "rpartition" , "rsplit" , "split" , "splitlines" ]
66
- or
67
- // Iterable[str] -> str
68
- method_name = "join" and
69
- nodeFrom = call .getArg ( 0 )
70
- or
71
- // Mapping[str, Any] -> str
72
- method_name = "format_map" and
73
- nodeFrom = call .getArg ( 0 )
74
- )
46
+ stringManipulation ( nodeFrom , nodeTo ) and
47
+ not nodeTo .( DataFlow:: MethodCallNode ) .getMethodName ( ) in [ "encode" , "decode" ]
75
48
) and
76
49
stateFrom instanceof PreValidation and
77
50
stateTo instanceof PostValidation
0 commit comments