DynamicExpression.ParseLambda是否能抵抗代码注入?

时间:2014-11-04 01:35:20

标签: c# linq linq-to-objects

我用

System.Linq.Dynamic.DynamicExpression.ParseLambda() 

从用户输入动态构建Where表达式的条件。

DynamicExpression.ParseLambda是否能够抵抗C#注入类似于着名的SQL注入?我试过简单的攻击,就像这个:

Where("Field1 == \"f1\" || Field2 == 222 || System.Diagnostics.Process.GetProcessById(100).Id == 100")

并得到了预期的异常,但我想确保ParseLambda不能对服务器做任何有害的事情,只允许操作参数的属性/字段评估和常量比较运算符execution.System.Linq.Dynamic。

0 个答案:

没有答案