评估安全问题?

时间:2016-12-14 13:19:18

标签: c# asp.net

我发现文档讲的是" Eval是邪恶的",我知道它有性能问题,甚至MSDN声明它:

  

因为此方法使用反射执行后期评估   在运行时,它可能会导致性能明显变慢   标准ASP.NET数据绑定语法 - MSDN

出于性能问题并考虑以下代码:

<%# Eval("MyDataFieldFromDataBase") %>

是否可以采取措施防止以危险方式解释字段(以防止代码注入)?

1 个答案:

答案 0 :(得分:1)

我相信你在谈论一些不同的Eval,而不是ASP.NET的。 aspx中的Eval只是method,它与其他任何方法一样有害。

它的一个潜在问题是Eval返回一个对象,因此如果您的代码不期望这种特定类型,则可以获得无效的强制转换异常。因此,页面上使用Eval没有类型安全性。

另一件事是Eval没有进行任何类型的转义,所以如果你的数据库中有潜在危险的内容,它将由Eval返回。但这不是特定于Eval的问题,您只需要确保清理所有用户输入,Eval与它无关。

除此之外,ASP.NET的Eval完全无害。