質問

ユーザーの入力を取り、いくつかのデータベースクエリを実行するCアプリケーションを作成しています。ここでSQL注入のリスクをよく知っており、それを防ぎたいと思っています。

理想的には、パラメーター化されたクエリを使用しますが、これまでCでこの機能で何も見つけることができませんでした。私は現在、そのようなクエリを構築しています:

char *query;
asprintf(&query, "UPDATE SomeTable SET SomeField='%s';", userInput);

これを行うことができない場合は、ユーザーの入力をフィルタリングする必要があります。このフィルタリングはどのように行う必要がありますか?すべてを削除するだけで十分ですか?(有効な入力はそれらを含めることはできません)。もしそうなら、Cでこれを行う最も簡単な方法は何ですか?

役に立ちましたか?

解決

準備されたステートメントとパラメーターバインディングを使用したいと思います。ユーザーデータをクエリに直接挿入しないでください。を参照してください mysqlマニュアル これに関する情報について。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top