ホームページ >データベース >mysql チュートリアル >Python で JSON POST 経由で SQLite データベースを更新するときに SQL インジェクションを防ぐ方法は?
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 サイトの他の関連記事を参照してください。