Python を使用した SQL ステートメントでの変数バインディング
Python では、変数をクエリの一部として含めずに SQL ステートメントに渡すことが重要です。弦。これにより、SQL インジェクション攻撃が防止され、適切なパラメーター処理が保証されます。
これを実現するには、プレースホルダー (例: 文字列の場合は %s、整数の場合は %d、整数の場合は '%f') を指定してcursor.execute() メソッドを使用します。
cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))
execute() メソッドのパラメータは、偶数のタプルである必要があることに注意してください。単一の値を渡す場合。単一のパラメータを指定するには、末尾にカンマを付けたタプルを使用します。
cursor.execute("INSERT INTO table VALUES (%s)", (var1,))
データベース API は、変数の適切なエスケープと引用符を処理します。文字列フォーマット演算子 (%) はエスケープや引用符を実行せず、アプリケーションが攻撃に対して脆弱になるため、使用しないでください。さらに、文字列を連結して SQL ステートメントを構築するのではなく、プリペアド ステートメント (ここに示すような) を使用することが重要です。セキュリティとパフォーマンスの両方が向上するためです。
以上がPython を使用して SQL ステートメント内の変数を安全にバインドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。