私は、いくつかのユーザー入力を受け取り、いくつかのデータベースクエリを実行するCアプリケーションを作成しています。私はここでSQLインジェクションのリスクをよく知っており、それを防ぎたいと思っています。
理想的にはパラメータ化されたクエリを使用しますが、これまでのところCでこの機能を備えたものを見つけることができませんでした。私は現在、クエリを次のように作成しています。
char *query;
asprintf(&query, "UPDATE SomeTable SET SomeField='%s';", userInput);
これができない場合は、ユーザー入力をフィルタリングする必要があります。このフィルタリングはどのように行う必要がありますか?すべての'と"を削除するだけで十分ですか?(有効な入力にそれらを含めることはできません)。そうであれば、Cでこれを行う最も簡単な方法は何ですか?