「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Pythonを使用して変数をSQLクエリに安全に挿入する方法は?

Pythonを使用して変数をSQLクエリに安全に挿入する方法は?

2025-02-06に投稿しました
ブラウズ:903

How to Safely Insert Variables into SQL Queries Using Python?

Python

のSQLクエリに変数を安全に挿入する

Pythonでデータベースクエリを処理する場合、通常、クエリステートメントに変数を含める必要があります。ただし、構文エラーやセキュリティの脆弱性を防ぐように動作するようにしてください。

次のPythonコードを検討してください:

cursor.execute("INSERT INTO table VALUES var1, var2, var3")

このコードでは、 var1 は整数です。ただし、Pythonが名前 var1 var2 、および var3 をクエリテキスト自体の一部として含めようとすると、問題が発生し、クエリの不変が生じます。 この問題を解決するために、データベースAPIによって提供されるプレースホルダー交換メカニズムを使用できます。プレースホルダーを使用してコードを書き換える方法は次のとおりです。 cursor.execute( "テーブル値に挿入(%s、%s、%s)"、(var1、var2、var3))

この改善されたコード:
cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))
%s

は、値を記入するためのプレースホルダーを表します。

  • (var1、var2、var3)は、挿入する値を含むタプルです。
  • タプルとして値を渡すことにより、データベースAPIは必要な変数エスケープと参照を処理し、データベースの互換性を確保し、潜在的なセキュリティリスクを防ぎます。 単一のパラメーターの場合、後続のコンマがあるタプルが必要であることに注意してください:

cursor.execute( "テーブル値に挿入(%s)"、(var1、))

さらに、セキュリティの脆弱性を引き起こす可能性があり、データベースAPIがサポートしていないため、文字列のフォーマット演算子(%)を使用して変数を挿入しないようにします。
            
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3