Python: Reorganise code a bit to minimize diff for PR.

This commit is contained in:
Mark Shannon
2019-08-16 11:45:57 +01:00
parent e5900921e7
commit 91aefab7aa
7 changed files with 22 additions and 44 deletions

View File

@@ -26,9 +26,7 @@ class SQLInjectionConfiguration extends TaintTracking::Configuration {
SQLInjectionConfiguration() { this = "SQL injection configuration" }
override predicate isSource(TaintTracking::Source source) {
source instanceof HttpRequestTaintSource
}
override predicate isSource(TaintTracking::Source source) { source instanceof HttpRequestTaintSource }
override predicate isSink(TaintTracking::Sink sink) { sink instanceof SqlInjectionSink }

View File

@@ -33,6 +33,3 @@ class StackTraceExposureConfiguration extends TaintTracking::Configuration {
from StackTraceExposureConfiguration config, TaintedPathSource src, TaintedPathSink sink
where config.hasFlowPath(src, sink)
select sink.getSink(), src, sink, "$@ may be exposed to an external user", src.getSource(), "Error information"

View File

@@ -16,9 +16,7 @@ class BrokenCryptoConfiguration extends TaintTracking::Configuration {
BrokenCryptoConfiguration() { this = "Broken crypto configuration" }
override predicate isSource(TaintTracking::Source source) {
source instanceof SensitiveDataSource
}
override predicate isSource(TaintTracking::Source source) { source instanceof SensitiveDataSource }
override predicate isSink(TaintTracking::Sink sink) {
sink instanceof WeakCryptoSink

View File

@@ -2,7 +2,6 @@ import python
import semmle.python.security.TaintTracking
private import semmle.python.objects.ObjectInternal
private import semmle.python.pointsto.Filters as Filters
private import semmle.python.dataflow.Presentation
newtype TTaintTrackingContext =
TNoParam()

View File

@@ -1,10 +0,0 @@
import semmle.python.security.TaintTracking
private import semmle.python.dataflow.Implementation
private import semmle.python.dataflow.Presentation
query predicate edges(TaintTrackingNode fromnode, TaintTrackingNode tonode) {
TaintTrackingPresentation::pathEdge(fromnode, tonode, _)
}

View File

@@ -1,23 +0,0 @@
import python
private import semmle.python.dataflow.Implementation
/** This module computed the flows from source to sink and edges to present to the user.
* Depends on the `Implementation` module to compute taint.
*/
module TaintTrackingPresentation {
predicate pathEdge(TaintTrackingNode src, TaintTrackingNode dest) {
pathEdge(src, dest, _)
}
predicate pathEdge(TaintTrackingNode src, TaintTrackingNode dest, string label) {
exists(TaintTrackingNode source, TaintTrackingNode sink |
source.getConfiguration().hasFlowPath(source, sink) and
source.getASuccessor*() = src and
src.getASuccessor(label) = dest and
dest.getASuccessor*() = sink
)
}
}

View File

@@ -1 +1,20 @@
import semmle.python.dataflow.Paths
import semmle.python.dataflow.Implementation
module TaintTrackingPaths {
predicate edge(TaintTrackingNode src, TaintTrackingNode dest, string label) {
exists(TaintTrackingNode source, TaintTrackingNode sink |
source.getConfiguration().hasFlowPath(source, sink) and
source.getASuccessor*() = src and
src.getASuccessor(label) = dest and
dest.getASuccessor*() = sink
)
}
}
query predicate edges(TaintTrackingNode fromnode, TaintTrackingNode tonode) {
TaintTrackingPaths::edge(fromnode, tonode, _)
}