私は関連するフィルタを適用しているIQueryable
をビルドしています。このコードはここにあります。Entity Framework + SQLインジェクション
items = items.OrderBy(string.Format("{0} {1}", sortBy, sortDirection));
このスニペットはSQLインジェクションに対して脆弱ですか?または、これらの(文字列)パラメータがシーンの裏でパラメータ化されていますか?私はすべてのLinqクエリがエスケープされ、私のためにパラメータ化されていると仮定しましたが、実際にこのような文字列を渡すことができるという事実は私を捨ててしまいます。
があなたのためにその文の仕事をしていますか?静的な拡張メソッドを実装していますか?私は 'OrderBy'に慣れていないので、lamba式を取っていません。 – sgeddes
この拡張は、 'System.Linq.Dynamic'名前空間にあります。 メソッドシグニチャ 'static IQueryable OrderBy (このIQueryable ソース、文字列の順序、paramsオブジェクトの[]値)を使用します。 –
alexhuang
System.Linq.Dynamicは、CodePlexでホストされているオープンソースプロジェクトのようです。ソースコードはhttp://dynamiclinq.codeplex.com/SourceControl/latest#DynamicLinq/System.Linq.Dynamic/Dynamic.csにあります。私が見ることのできるところからは、文字列データを取得してそれを使って式ツリーを修正しています。いいえ、SQLインジェクションには脆弱ではありません。 –