linqをSQLに使用すると、すべてがパラメータ化され、SQLインジェクションセーフであることがわかります。 しかし、IQueryableはどうですか?例えばEntity Frameworkを使用したIQueryable SQLインジェクション証明はありますか?
、私はIQueryableをするためにいくつかのエンティティをキャストすることができます
var myquery = mytesttable.AsQueryable();
var qText = "name="+ "\""+DynamicSearchCondition+ "\"";
myquery = myquery.Where(qText);
その後、クエリが実行されたときに、トレースから私は、渡されたDynamicSearchConditionがparametrisedされていないことがわかります。
私はこれがSQLインジェクションプルーフではないと思っていましたが、いくつかの例を試してみましたが、これを破ることはできません。 SQLインジェクションが無料であることを意味しますか(今はそうだと思いますか?)
これが真であれば、IQueryableはすべてSQLインジェクションに対して安全ですか?
私は、その安全はこのブログのhttp 'を参照してくださいとは思いません。com/b/publicsector/archive/2008/08/21/prevent-sql-injection-the-entity-framework-and-data-services.aspx' –
正しいリンクは:http://blogs.msdn.com /b/publicsector/archive/2008/08/21/preventing-sql-injection-with-theentity-framework-and-data-services.aspx –
ここで '_'を引数_string_で取得しますか? – Grundy