@@ -20,15 +20,15 @@ class User(Base):
2020
2121
2222@app .route ("/users/<username>" )
23- def show_user (username ):
23+ def show_user (username ): # $ Source
2424 session = sqlalchemy .orm .Session (engine )
2525
2626 # BAD, normal SQL injection
27- stmt = sqlalchemy .text ("SELECT * FROM users WHERE username = '{}'" .format (username ))
27+ stmt = sqlalchemy .text ("SELECT * FROM users WHERE username = '{}'" .format (username )) # $ Alert
2828 results = session .execute (stmt ).fetchall ()
2929
3030 # BAD, allows SQL injection
31- username_formatted_for_sql = sqlalchemy .text ("'{}'" .format (username ))
31+ username_formatted_for_sql = sqlalchemy .text ("'{}'" .format (username )) # $ Alert
3232 stmt = sqlalchemy .select (User ).where (User .username == username_formatted_for_sql )
3333 results = session .execute (stmt ).scalars ().all ()
3434
@@ -38,14 +38,14 @@ def show_user(username):
3838
3939
4040 # All of these should be flagged by query
41- t1 = sqlalchemy .text (username )
42- t2 = sqlalchemy .text (text = username )
43- t3 = sqlalchemy .sql .text (username )
44- t4 = sqlalchemy .sql .text (text = username )
45- t5 = sqlalchemy .sql .expression .text (username )
46- t6 = sqlalchemy .sql .expression .text (text = username )
47- t7 = sqlalchemy .sql .expression .TextClause (username )
48- t8 = sqlalchemy .sql .expression .TextClause (text = username )
49-
50- t9 = db .text (username )
51- t10 = db .text (text = username )
41+ t1 = sqlalchemy .text (username ) # $ Alert
42+ t2 = sqlalchemy .text (text = username ) # $ Alert
43+ t3 = sqlalchemy .sql .text (username ) # $ Alert
44+ t4 = sqlalchemy .sql .text (text = username ) # $ Alert
45+ t5 = sqlalchemy .sql .expression .text (username ) # $ Alert
46+ t6 = sqlalchemy .sql .expression .text (text = username ) # $ Alert
47+ t7 = sqlalchemy .sql .expression .TextClause (username ) # $ Alert
48+ t8 = sqlalchemy .sql .expression .TextClause (text = username ) # $ Alert
49+
50+ t9 = db .text (username ) # $ Alert
51+ t10 = db .text (text = username ) # $ Alert
0 commit comments