Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 601a803

Browse files
committed
Python: DataFlow/TaintTrackin 3/4
1 parent d89e985 commit 601a803

11 files changed

Lines changed: 7104 additions & 2 deletions

File tree

config/identical-files.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@
2020
"csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll",
2121
"csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll",
2222
"python/ql/src/experimental/dataflow/internal/DataFlowImpl.qll",
23-
"python/ql/src/experimental/dataflow/internal/DataFlowImpl2.qll"
23+
"python/ql/src/experimental/dataflow/internal/DataFlowImpl2.qll",
24+
"python/ql/src/experimental/dataflow/internal/DataFlowImpl3.qll",
25+
"python/ql/src/experimental/dataflow/internal/DataFlowImpl4.qll"
2426
],
2527
"DataFlow Java/C++/C#/Python Common": [
2628
"java/ql/src/semmle/code/java/dataflow/internal/DataFlowImplCommon.qll",
@@ -42,7 +44,9 @@
4244
"java/ql/src/semmle/code/java/dataflow/internal/tainttracking1/TaintTrackingImpl.qll",
4345
"java/ql/src/semmle/code/java/dataflow/internal/tainttracking2/TaintTrackingImpl.qll",
4446
"python/ql/src/experimental/dataflow/internal/tainttracking1/TaintTrackingImpl.qll",
45-
"python/ql/src/experimental/dataflow/internal/tainttracking2/TaintTrackingImpl.qll"
47+
"python/ql/src/experimental/dataflow/internal/tainttracking2/TaintTrackingImpl.qll",
48+
"python/ql/src/experimental/dataflow/internal/tainttracking3/TaintTrackingImpl.qll",
49+
"python/ql/src/experimental/dataflow/internal/tainttracking4/TaintTrackingImpl.qll"
4650
],
4751
"DataFlow Java/C++/C#/Python Consistency checks": [
4852
"java/ql/src/semmle/code/java/dataflow/internal/DataFlowImplConsistency.qll",
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/**
2+
* Provides a library for local (intra-procedural) and global (inter-procedural)
3+
* data flow analysis: deciding whether data can flow from a _source_ to a
4+
* _sink_.
5+
*
6+
* Unless configured otherwise, _flow_ means that the exact value of
7+
* the source may reach the sink. We do not track flow across pointer
8+
* dereferences or array indexing. To track these types of flow, where the
9+
* exact value may not be preserved, import
10+
* `experimental.dataflow.TaintTracking`.
11+
*
12+
* To use global (interprocedural) data flow, extend the class
13+
* `DataFlow::Configuration` as documented on that class. To use local
14+
* (intraprocedural) data flow, call `DataFlow::localFlow` or
15+
* `DataFlow::localFlowStep` with arguments of type `DataFlow::Node`.
16+
*/
17+
18+
private import python
19+
20+
/**
21+
* Provides classes for performing local (intra-procedural) and
22+
* global (inter-procedural) data flow analyses.
23+
*/
24+
module DataFlow3 {
25+
import experimental.dataflow.internal.DataFlowImpl3
26+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/**
2+
* Provides a library for local (intra-procedural) and global (inter-procedural)
3+
* data flow analysis: deciding whether data can flow from a _source_ to a
4+
* _sink_.
5+
*
6+
* Unless configured otherwise, _flow_ means that the exact value of
7+
* the source may reach the sink. We do not track flow across pointer
8+
* dereferences or array indexing. To track these types of flow, where the
9+
* exact value may not be preserved, import
10+
* `experimental.dataflow.TaintTracking`.
11+
*
12+
* To use global (interprocedural) data flow, extend the class
13+
* `DataFlow::Configuration` as documented on that class. To use local
14+
* (intraprocedural) data flow, call `DataFlow::localFlow` or
15+
* `DataFlow::localFlowStep` with arguments of type `DataFlow::Node`.
16+
*/
17+
18+
private import python
19+
20+
/**
21+
* Provides classes for performing local (intra-procedural) and
22+
* global (inter-procedural) data flow analyses.
23+
*/
24+
module DataFlow4 {
25+
import experimental.dataflow.internal.DataFlowImpl4
26+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/**
2+
* Provides classes for performing local (intra-procedural) and
3+
* global (inter-procedural) taint-tracking analyses.
4+
*
5+
* To use global (interprocedural) taint tracking, extend the class
6+
* `TaintTracking::Configuration` as documented on that class. To use local
7+
* (intraprocedural) taint tracking, call `TaintTracking::localTaint` or
8+
* `TaintTracking::localTaintStep` with arguments of type `DataFlow::Node`.
9+
*/
10+
11+
private import python
12+
13+
/**
14+
* Provides classes for performing local (intra-procedural) and
15+
* global (inter-procedural) taint-tracking analyses.
16+
*/
17+
module TaintTracking3 {
18+
import experimental.dataflow.internal.tainttracking3.TaintTrackingImpl
19+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/**
2+
* Provides classes for performing local (intra-procedural) and
3+
* global (inter-procedural) taint-tracking analyses.
4+
*
5+
* To use global (interprocedural) taint tracking, extend the class
6+
* `TaintTracking::Configuration` as documented on that class. To use local
7+
* (intraprocedural) taint tracking, call `TaintTracking::localTaint` or
8+
* `TaintTracking::localTaintStep` with arguments of type `DataFlow::Node`.
9+
*/
10+
11+
private import python
12+
13+
/**
14+
* Provides classes for performing local (intra-procedural) and
15+
* global (inter-procedural) taint-tracking analyses.
16+
*/
17+
module TaintTracking4 {
18+
import experimental.dataflow.internal.tainttracking4.TaintTrackingImpl
19+
}

0 commit comments

Comments
 (0)