私は ASP.NET、C#、および MS SQL を使用しています。ユーザーが複雑なルールを作成できるルール ビルダー ページを作成しました。このページは SQL 呼び出しの「Where」句の後に続くものを作成しますが、ルール ページはサブクエリ、操作の順序、またはその他の非常に複雑な句を作成できません。
上級ユーザーがこのステートメントを編集できるオプションを提供したいと考えていますが、悪意のあるコードを実行できる SQL インジェクション攻撃を阻止したいと考えています。彼らが 1=1 を置きたいかどうかは気にしません。彼らが更新/削除/ストアド プロシージャなどを呼び出すためにブレイクアウトしようとすることを本当に気にかけています。
以下は、ルール ジェネレーターがドロップダウン メニューを使用して構築しない、ユーザーが入力する高度なクエリの例です。
Where Org in (Select Org from AnotherTable Where Manager in (1,2,3)) AND ((Person= 4 OR Level = 5) AND Entity between 5 and 10 or Entity = 15)
誰かが考えることができる、そこにある、または無料の何かはありますか? これを可能にするクールなルール ビルダーを 1 つ見たことがありますが、2000 ドルを超えています。