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!