ホームページ >バックエンド開発 >Python チュートリアル >SQLite で動的テーブル名を安全に作成するにはどうすればよいですか?

SQLite で動的テーブル名を安全に作成するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-15 00:30:02461ブラウズ

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

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。