Python: Fix concepts-tests for SQLAlchemy

This commit is contained in:
Rasmus Wriedt Larsen
2021-06-29 10:58:28 +02:00
parent 3ace49549a
commit eac1c5d109
2 changed files with 14 additions and 12 deletions

View File

@@ -1,2 +1,3 @@
import python
import experimental.meta.ConceptsTest
import experimental.semmle.python.frameworks.SqlAlchemy

View File

@@ -34,23 +34,24 @@ session.add(ed_user2)
session.commit()
# Injection without requiring the text() taint-step
session.query(User).filter_by(name="some sql") # $getSql="some sql"
session.scalar("some sql") # $getSql="some sql"
engine.scalar("some sql") # $getSql="some sql"
session.execute("some sql") # $getSql="some sql"
session.query(User).filter_by(name="some sql") # $ MISSING: getSql="some sql"
session.scalar("some sql") # $ getSql="some sql"
engine.scalar("some sql") # $ getSql="some sql"
session.execute("some sql") # $ getSql="some sql"
with engine.connect() as connection:
connection.execute("some sql") # $getSql="some sql"
connection.execute("some sql") # $ getSql="some sql"
with engine.begin() as connection:
connection.execute("some sql") # $getSql="some sql"
connection.execute("some sql") # $ getSql="some sql"
# Injection requiring the text() taint-step
session.query(User).filter(text("some sql")) # $getSql="some sql"
session.query(User).group_by( User.id ).having(text("some sql")) # $getSql="some sql"
session.query(User).group_by(text("name='some sql'")).first() # $getSql="some sql"
session.query(User).order_by(text("name='some sql'")).first() # $getSql="some sql"
t = text("some sql")
session.query(User).filter(t) # $ getSql=t
session.query(User).group_by(User.id).having(t) # $ getSql=Attribute MISSING: getSql=t
session.query(User).group_by(t).first() # $ getSql=t
session.query(User).order_by(t).first() # $ getSql=t
query = select(User).where(User.name == text("some sql")) # $getSql="some sql"
query = select(User).where(User.name == t) # $ MISSING: getSql=t
with engine.connect() as conn:
conn.execute(query)
conn.execute(query) # $ getSql=query