Python+mysqlconnectorでのサニタイジング(エスケープ)
mysql.connectorでのサニタイジング
サニタイジングは*浄化*の事で、文字通りにデータを浄化します。
なぜサニタイジングが必要?
データベースを操作する、ほとんどのアプリはユーザーに検索条件などを入力させると思いますが、この時、検索条件に悪意のあるSQL文を書かれてしまって、意図しない情報を出力してしまう事を避けたり、記号の混入などで思わぬエラーを避けるためにサニタイジングが必要になります。
詳しくは*SQLインジェクション*のキーワードで検索してみてください。
サンプル
エスケープする手段はmysql.connector側で用意してくれていました。
cursor.execute()のパラメータにqueryとデータを渡します。つまり、データをクエリの中に埋め込まずに、クエリにはフォーマットのみを書き、データは別に渡します。すると、execute()でフォーマットしてから実行してくれます。
| 固定リンク
| コメント (0)
| トラックバック (0)