ホームページ >データベース >mysql チュートリアル >Python で JSON POST 経由で SQLite データベースを更新するときに SQL インジェクションを防ぐ方法は?

Python で JSON POST 経由で SQLite データベースを更新するときに SQL インジェクションを防ぐ方法は?

DDD
DDDオリジナル
2025-01-04 21:35:41845ブラウズ

How to Prevent SQL Injection When Updating an SQLite Database via JSON POST in Python?

Python での SQL インジェクション保護

質問:

SQL インジェクションの脆弱性から保護するには、ユーザーから受信し、JSON POST 経由で送信された文字列を、安全な更新操作のためにサニタイズするにはどうすればよいですか? Python 内の SQLite データベースは?

答え:

パラメータ化されたクエリの利用

SQL インジェクションのリスクを軽減するための推奨アプローチは次のとおりです。パラメータ化されたクエリを使用します。 Python の sqlite3 モジュールは、プレースホルダー パラメーター (?) を介してこれをサポートします。ユーザー入力を SQL ステートメントに直接連結する代わりに、ユーザー入力を SQL 構文から分離してパラメーターとして渡します。

改訂コード:

def setLabel(self, userId, refId, label):
    cursor = self._db.cursor()
    query = """UPDATE items SET label = ? WHERE userId IS ? AND refId IS ?"""
    cursor.execute(query, (label, userId, refId))
    self._db.commit()

Byパラメータ化されたクエリを使用すると、ラベル入力内の潜在的に悪意のある文字やメタ文字が自動的にエスケープされ、SQL ではなくリテラル テキストとして解釈されるようになります。コマンド。

以上がPython で JSON POST 経由で SQLite データベースを更新するときに SQL インジェクションを防ぐ方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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