このステートメントを特殊文字の挿入から安全にしようとしています。値が「Women's」の変数タイプなど、これを処理するにはクエリをどのように再フォーマットすればよいでしょうか? ただし、パラメーター化されたクエリが最適であることはわかっています。それは今の選択肢ではありません。
var sqlStatement = "SELECT DISTINCT DN FROM tbl1 WHERE Media LIKE "+ media + "% AND Type = " + type + "";
このステートメントを特殊文字の挿入から安全にしようとしています。値が「Women's」の変数タイプなど、これを処理するにはクエリをどのように再フォーマットすればよいでしょうか? ただし、パラメーター化されたクエリが最適であることはわかっています。それは今の選択肢ではありません。
var sqlStatement = "SELECT DISTINCT DN FROM tbl1 WHERE Media LIKE "+ media + "% AND Type = " + type + "";
ここでの最良のリソースは OWASP です ( SQL インジェクション防止のチート シートを参照してください)。繰り返しますが、最善の策は次の順序で解決策を試すことです。
SQL Server のクエリをエスケープすることに完全に設定されている場合は、この MSDN の記事、具体的には入力のエスケープセクションを参照できます。ホワイト リストを実装してユーザー入力をさらに検証できる場合は、なおさらです。
ただし、パラメーター化されたクエリが最適であることはわかっています。それは今の選択肢ではありません。
それが「今のところ選択肢ではない」のはなぜですか?
データ全体が危険にさらされたり破壊されたりすることは「今の選択肢」ですか? あなたのURLを投稿してもよろしいですか?
クエリをパラメータ化しない場合、SQL インジェクションを確実に防ぐ確実な方法はありません。