Python points-to: Add .getAstNode() method to TaintedNode for forward compatibility with upcoming taint-tracking enhancements.

This commit is contained in:
Mark Shannon 2019-08-16 09:54:11 +01:00
Родитель f3f89ffe3f
Коммит 453ae19881
9 изменённых файлов: 14 добавлений и 9 удалений

Просмотреть файл

@ -665,6 +665,11 @@ class TaintedNode extends TTaintedNode {
this = TTaintedNode_(_, _, result)
}
/** Get the AST node for this node. */
AstNode getAstNode() {
result = this.getNode().getNode()
}
/** Gets the data-flow context for this node. */
CallContext getContext() {
this = TTaintedNode_(_, result, _)

Просмотреть файл

@ -10,5 +10,5 @@ import semmle.python.security.strings.Untrusted
from TaintedNode node
select node.getLocation().toString(), node.getNode().getNode().toString(), node.getTaintKind().toString()
select node.getLocation().toString(), node.getAstNode().toString(), node.getTaintKind().toString()

Просмотреть файл

@ -35,5 +35,5 @@ class ExternalStringSource extends TaintSource {
from TaintedNode n
where n.getLocation().getFile().getName().matches("%test.py")
select n.getTrackedValue(), n.getLocation().toString(), n.getNode().getNode(), n.getContext()
select n.getTrackedValue(), n.getLocation().toString(), n.getAstNode(), n.getContext()

Просмотреть файл

@ -5,5 +5,5 @@ import Taint
from TaintedNode n
where n.getLocation().getFile().getName().matches("%test.py")
select n.getTrackedValue(), n.getLocation().toString(), n.getNode().getNode(), n.getContext()
select n.getTrackedValue(), n.getLocation().toString(), n.getAstNode(), n.getContext()

Просмотреть файл

@ -8,6 +8,6 @@ where n.getLocation().getFile().getName().matches("%test.py") and
s.getLocation().getFile().getName().matches("%test.py") and
s = n.getASuccessor()
select
n.getTrackedValue(), n.getLocation().toString(), n.getNode().getNode(), n.getContext(),
n.getTrackedValue(), n.getLocation().toString(), n.getAstNode(), n.getContext(),
" --> ",
s.getTrackedValue(), s.getLocation().toString(), s.getNode().getNode(), s.getContext()
s.getTrackedValue(), s.getLocation().toString(), s.getAstNode(), s.getContext()

Просмотреть файл

@ -9,5 +9,5 @@ import semmle.python.security.strings.Untrusted
from TaintedNode node
select node.getLocation().toString(), node.getNode().getNode().toString(), node.getTaintKind()
select node.getLocation().toString(), node.getAstNode().toString(), node.getTaintKind()

Просмотреть файл

@ -9,5 +9,5 @@ import semmle.python.security.strings.Untrusted
from TaintedNode node
where node.getLocation().getFile().getName().matches("%falcon/test.py")
select node.getLocation().toString(), node.getNode().getNode().toString(), node.getTaintKind()
select node.getLocation().toString(), node.getAstNode().toString(), node.getTaintKind()

Просмотреть файл

@ -9,5 +9,5 @@ import semmle.python.security.strings.Untrusted
from TaintedNode node
select node.getLocation().toString(), node.getNode().getNode().toString(), node.getTaintKind()
select node.getLocation().toString(), node.getAstNode().toString(), node.getTaintKind()

Просмотреть файл

@ -6,5 +6,5 @@ import semmle.python.security.SensitiveData
import semmle.python.security.Crypto
from TaintedNode n, AstNode src
where src = n.getNode().getNode() and src.getLocation().getFile().getName().matches("%test%")
where src = n.getAstNode() and src.getLocation().getFile().getName().matches("%test%")
select n.getTrackedValue(), n.getLocation(), src, n.getContext()