Das bereitgestellte Codefragment ruft Daten aus einer SQL-Abfrage mithilfe der Methode „connection.execute“ ab und konvertiert das Ergebnis in ein Array von Karten. Allerdings wird die Parametrisierung derzeit durch String-Formatierung gehandhabt, was ein Sicherheitsrisiko darstellt.
Um dieses Problem zu beheben, kann die text()-Funktion von SQLAlchemy verwendet werden, um parametrisierte SQL-Abfragen zu generieren. Diese Funktion verwendet eine SQL-Zeichenfolge als Argument und ermöglicht die Verwendung von Schlüsselwortparametern zur Angabe von Werten während der Ausführung.
Hier ist eine aktualisierte Version des Codes:
def __sql_to_data(sql, values): result = [] connection = engine.connect() try: # Convert SQL to parametrized SQL sql_text = sql.text(sql) rows = connection.execute(sql_text, values) for row in rows: result_row = {} for col in row.keys(): result_row[str(col)] = str(row[col]) result.append(result_row) finally: connection.close() return result
In diesem aktualisierten Code:
Das obige ist der detaillierte Inhalt vonWie übergebe ich Parameter sicher an die Methode „connection.execute' von SQLAlchemy?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!