Heim > Datenbank > MySQL-Tutorial > Wie übergebe ich Parameter sicher an die Methode „connection.execute' von SQLAlchemy?

Wie übergebe ich Parameter sicher an die Methode „connection.execute' von SQLAlchemy?

Mary-Kate Olsen
Freigeben: 2025-01-04 08:11:39
Original
212 Leute haben es durchsucht

How to Securely Pass Parameters to SQLAlchemy's `connection.execute` Method?

Übergabe von Parametern in der Methode „connection.execute“ von SQLAlchemy

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
Nach dem Login kopieren

In diesem aktualisierten Code:

  1. Der SQL-String (sql) wird an text() übergeben, um ein parametrisiertes SQL-Objekt zu erstellen (sql_text) __sql_to_data(sql, Werte):

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage