私は最終的にSQL SELECTステートメントを動的に構築して後で保存および実行するASP.NET MVC4アプリケーションを作成しています。動的 SQL の構造は、標準のチェックボックス、ドロップダウン、および自由入力テキストボックスを使用して、ユーザーフレンドリーな方法でユーザー構成によって決定されます。入力を検証し、パラメーター化されたクエリを使用して SQL 文字列を作成するのは簡単ですが、高度なユーザーがカスタム SQL を入力して SELECT 句と WHERE 句に直接挿入できるようにする必要があります。では、カスタム SQL 式をクレンジングしたり、巧妙なユーザーからの不要な入力から保護したりするには、どのような手法を使用できるでしょうか? 疑わしいキーワードやブラックリストの挿入/更新/削除などの文字列を簡単に解析できますが、100% 保護することはできないことがわかります。
私がここで行っていることについて、より詳細な情報を提供できることをうれしく思いますが、私の問題はおそらく一般的ではありませんが、かなり一般的なものだと感じているため、他の詳細が役立つかどうかはわかりません.