You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since we are adding a new source, we need to add a tuple to the **sourceModel** extension point.
107
+
The first five values are used to identify the method (callable) which we are defining a source on.
108
+
109
+
- The first value **java.net** is the package name.
110
+
- The second value **Socket** is the class (type) name.
111
+
- The third value **False** is flag indicating, whether the source also applies to all overrides of the method.
112
+
- The fourth value **getInputStream** is the method name.
113
+
- The fifth value **()** is the method input type signature.
114
+
115
+
For most practical purposes the sixth value is not relevant.
116
+
The remaining values are used to define the **access path**, the **kind**, and the **provenance** (origin) of the source.
117
+
118
+
- The seventh value **ReturnValue** is the access path to the return of the method, which means that it is the return value that should be considered a tainted source.
119
+
- The eighth value **remote** is the kind of the source. The source kind is used to define for which queries the source is in scope. **remote** applies to many of security related queries as it means a remote source of untrusted data. As an example the SQL injection query uses **remote** sources.
120
+
- The ninth value **manual** is the provenance of the source, which is used to identify the origin of the source.
82
121
83
122
Example: Adding flow through '<TODO>' methods.
84
123
----------------------------------------------
85
124
125
+
86
126
Example: Adding **neutral** methods.
87
127
------------------------------------
88
128
This is purely for consistency and has no impact on the analysis.
0 commit comments