私はPythonでsqlite DBにchar(80)値を設定するコードをいくつか持っています。PythonのSQLインジェクションからの保護
文字列は、テキスト入力フィールドからユーザーから直接取得され、JSON構造のPOSTメソッドでサーバーに返されます。
私は現在、SQL UPDATE操作を呼び出すメソッドに文字列を渡します。
これは機能しますが、私はそれがまったく安全ではないことを認識しています。
とにかくクライアント側が安全でないと予想しているため、サーバー側に何らかの保護が必要です。 UPDATE操作を再度SQLインジェクションで保護するために何ができるでしょうか?
SQLパーサを混乱させないようにテキストを "引用"する関数が私が探しているものです。私はそのような機能は存在すると思うが、それを見つけることはできない。
編集:ここでは は、char型のフィールド名のラベルを設定する私の現在のコードです:
def setLabel(self, userId, refId, label):
self._db.cursor().execute("""
UPDATE items SET label = ? WHERE userId IS ? AND refId IS ?""", (label, userId, refId))
self._db.commit()
は、Pythonのサポートパラメータ化クエリではないんです、
"Joe"
エスケープ? @Jeremy。 –はい...しかし、実際には、特定のデータベース用のPythonライブラリがサポートしているかどうか(どちらもAFAIK)です。 – Gerrat
はい。だから私の質問は、私がSQLインジェクションからの保護を確実にするのに十分であることを尋ねるように私の質問を考慮する。 – chmike