Seite 1 von 1
SQL-Injection in Flask-SQLAlchemy
Verfasst: Montag 25. September 2023, 08:30
von PythonCodingFun
Hallo liebe Community,
ich nutze für die für meine Flask Webanwendung Flask-SQLAlchemy (Stichwort ORM), das heißt in meinem Fall, das ich auch explizit kein SQL nutze um anfragen etc. zu machen. Aber ist damit auch die Anwendung gegen SQL-Injection geschützt ? Ich habe nämlich diesbezüglich kein gutes Gefühl, falls ich richtig liege was muss ich zusätzlich (wohl in Python) Coden damit ich diese mögliche Sicherheitsschwachstelle "ausmerze".
Wie sind da eure Erfahrungen ?
Über Hilfe würde ich mich sehr freuen
Re: SQL-Injection in Flask-SQLAlchemy
Verfasst: Montag 25. September 2023, 08:42
von __deets__
Die idiomatische Nutzung von SQLAlchemy beugt SQL-Injection vor. Wenn du natuerlich SQL-Statements als ganzes mit String-Operationen zusammenbaust, und die dann einfach nur ausfuehren laesst, hilft's nix. Aber sobald du durch die SA-spezifische DSL gehst , ist das ok.
Re: SQL-Injection in Flask-SQLAlchemy
Verfasst: Montag 25. September 2023, 08:47
von PythonCodingFun
__deets__ hat geschrieben: ↑Montag 25. September 2023, 08:42
Die idiomatische Nutzung von SQLAlchemy beugt SQL-Injection vor. Wenn du natuerlich SQL-Statements als ganzes mit String-Operationen zusammenbaust, und die dann einfach nur ausfuehren laesst, hilft's nix. Aber sobald du durch die SA-spezifische DSL gehst , ist das ok.
Kannst Du mir mit dem Begriff SA-spezifische DSL weiterhelfen, was ist damit im SQLAlchemy Kontext gemeint ?
Re: SQL-Injection in Flask-SQLAlchemy
Verfasst: Montag 25. September 2023, 08:58
von __deets__
Die SA-Apis zur Erzeugung von SQL. Also zB
https://docs.sqlalchemy.org/en/20/core/ ... ssion.and_ und die select Methode etc. NICHT die text()-Methode! Das steht da auch ganz dick.
https://docs.sqlalchemy.org/en/20/core/ ... ssion.text
""
The text.text argument to text() can be passed as a Python string argument, which will be treated as trusted SQL text and rendered as given. DO NOT PASS UNTRUSTED INPUT TO THIS PARAMETER.
"""
Re: SQL-Injection in Flask-SQLAlchemy
Verfasst: Montag 25. September 2023, 09:03
von PythonCodingFun
Ach so, also auch sowas wie:
oder
?!
Re: SQL-Injection in Flask-SQLAlchemy
Verfasst: Montag 25. September 2023, 09:13
von __blackjack__
@PythonCodingFun: Das ist sicher, beziehungsweise hätte da denn jemand anderes den Fehler begangen, nicht Du.