ホームページ >バックエンド開発 >Python チュートリアル >SQLite で動的テーブル名を安全に作成するにはどうすればよいですか?
SQLite での動的テーブル作成
SQLite では、変数テーブル名は直接サポートされていません。ただし、セキュリティを維持しながら同様の効果を達成する手法があります。
コンストラクターを避ける
SQL のリスクのため、テーブル名の作成に文字列コンストラクターを使用することはお勧めできません。注射攻撃。テーブル名を作成する前に、サニタイズ関数を使用して変数から特殊文字を削除することを検討してください。
スクラブ関数
スクラブ関数の例を以下に示します。
def scrub(table_name): return ''.join(chr for chr in table_name if chr.isalnum())
この関数は、テーブル名から英数字以外の文字をフィルタリングします。
使用法
動的に決定された名前を持つテーブルを作成するには、次のようにします。次のアプローチを使用できます:
table_name = scrub(self.name) cursor.execute("CREATE TABLE StarFrame" + table_name + " (etc etc)")
これにより、テーブル名が潜在的なインジェクション攻撃から安全になります。
以上がSQLite で動的テーブル名を安全に作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。