Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich sicher einen dynamischen Tabellennamen in SQLite erstellen?

Wie kann ich sicher einen dynamischen Tabellennamen in SQLite erstellen?

Barbara Streisand
Barbara StreisandOriginal
2024-11-15 00:30:02459Durchsuche

How can I create a dynamic table name in SQLite securely?

Dynamische Tabellenerstellung in SQLite

Variable Tabellennamen werden in SQLite nicht direkt unterstützt. Es gibt jedoch Techniken, um einen ähnlichen Effekt zu erzielen und gleichzeitig die Sicherheit aufrechtzuerhalten.

Konstruktoren vermeiden

Die Verwendung von String-Konstruktoren zum Erstellen von Tabellennamen wird aufgrund des Risikos von SQL nicht empfohlen Injektionsattacken. Erwägen Sie die Verwendung einer Bereinigungsfunktion, um Sonderzeichen aus der Variablen zu entfernen, bevor Sie den Tabellennamen erstellen.

Scrubbing-Funktion

Ein Beispiel für eine Scrubbing-Funktion finden Sie unten:

def scrub(table_name):
    return ''.join(chr for chr in table_name if chr.isalnum())

Diese Funktion filtert nicht-alphanumerische Zeichen aus dem Tabellennamen heraus.

Verwendung

Um eine Tabelle mit einem dynamisch ermittelten Namen zu erstellen, müssen Sie kann den folgenden Ansatz verwenden:

table_name = scrub(self.name)
cursor.execute("CREATE TABLE StarFrame" + table_name + " (etc etc)")

Dadurch wird sichergestellt, dass der Tabellenname vor möglichen Injektionsangriffen geschützt ist.

Das obige ist der detaillierte Inhalt vonWie kann ich sicher einen dynamischen Tabellennamen in SQLite erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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