1- """This is copied from ql/python/ql/test/library -tests/web/django/test.py
2- and a only a slight extension of ql/python/ql/src/Security/CWE-089/examples/sql_injection.py
1+ """This is adapted from ql/python/ql/test/query -tests\Security\CWE-089
2+ we now prefer to setup routing by flask
33"""
44
5- from django .conf .urls import url
65from django .db import connection , models
76from django .db .models .expressions import RawSQL
7+ from flask import Flask , request
8+ app = Flask (__name__ )
89
910class User (models .Model ):
1011 pass
1112
12- def show_user (request , username ):
13+ @app .route ("/users/<username>" )
14+ def show_user (username ):
1315 with connection .cursor () as cursor :
1416 # GOOD -- Using parameters
1517 cursor .execute ("SELECT * FROM users WHERE username = %s" , username )
@@ -36,5 +38,3 @@ def show_user(request, username):
3638 # When testing this out locally, none of the queries worked against SQLite3, but I could use
3739 # the SQL injection against MySQL.
3840 User .objects .raw ("SELECT * FROM users WHERE username = '%s'" , (username ,))
39-
40- urlpatterns = [url (r'^users/(?P<username>[^/]+)$' , show_user )]
0 commit comments