Files
codeql/python/ql/test/experimental/library-tests/frameworks/django/SqlExecution.py
2020-10-19 21:34:55 +02:00

19 lines
763 B
Python

from django.db import connection, models
def test_plain(username):
# GOOD -- Using parameters
connection.cursor().execute("SELECT * FROM users WHERE username = %s", username) # $getSql="SELECT * FROM users WHERE username = %s"
# BAD -- Using string formatting
connection.cursor().execute("SELECT * FROM users WHERE username = '%s'" % username) # $getSql=BinaryExpr
def test_context(username):
with connection.cursor() as cursor:
# GOOD -- Using parameters
cursor.execute("SELECT * FROM users WHERE username = %s", username) # $getSql="SELECT * FROM users WHERE username = %s"
# BAD -- Using string formatting
cursor.execute("SELECT * FROM users WHERE username = '%s'" % username) # $getSql=BinaryExpr