Я знаю, что если я использую linq для sql, все будет параметризоваться и SQL-инъекция безопасна. Но как насчет IQueryable?Является ли IQueryable SQL-инъекцией доказательством с использованием Entity Framework?
Например, я могу бросить некоторый объект в IQueryable:
var myquery = mytesttable.AsQueryable();
var qText = "name="+ "\""+DynamicSearchCondition+ "\"";
myquery = myquery.Where(qText);
Затем, когда запрос выполняется, от трассы я могу видеть, что DynamicSearchCondition Передаваемый не параметрирован.
Первоначально я думал, что это не sql-инжекционное доказательство, но затем я попробовал несколько примеров и просто не могу сломать этот. Означает ли это, что это инъекция sql бесплатно (я думаю, что это сейчас)?
Если это так, означает ли это, что все IQueryable являются безопасными для SQL-инъекций?
Я не думаю, что его безопасное увидеть этот блог 'Http: //blogs.msdn.com/b/publicsector/archive/2008/08/21/prevent-sql-injection-with-the-entity-framework-and-data-services.aspx' –
Исправить ссылку: http://blogs.msdn.com /b/publicsector/archive/2008/08/21/preventing-sql-injection-with-the-entity-framework-and-data-services.aspx –
где вы получаете 'Where' с аргументом _string_? – Grundy