pandasを使用してcsvファイルをDataFrameにロードし、pandasqlを使用してSQL操作を実行する単純なアプリがあります。これらの操作の一部は、ユーザー入力から行われます。テストのために、私はラインを持っています
tempdb = sqldf('SELECT * from eventsdb_subset WHERE %s' % filterstring,locals())
ここで、filterstring は生のユーザー入力です。これは明らかに SQL インジェクション ホールです。
通常、このようなデータベースを使用する場合、ユーザー入力をサニタイズしますが、この場合、必要はありますか? DataFrame はメモリ内にのみ存在し、使用されるファイルはすべてローカルであり、ディスク上の csv ファイルに対して実際には何も行われないため、そのクエリの出力を単に無視するだけでは解決できなかったサニタイズされていない DB クエリで、誰かがどのような害を及ぼす可能性がありますか? ?
編集: これが SQL インジェクション ホールであることは間違いありません。私の質問は、DB がローカル RAM にのみ存在する場合、なぜ気にするのですか?