ASP.NET是否使用已知值隐式验证控件

时间:2012-08-22 14:43:48

标签: asp.net sql

我有一个复选框列表,其中包含一些值参数设置为数据集过滤器的项目。这些值是否在回发时得到验证,以确保它们在有效复选框的范围内,或者用户是否可以使用有害(sql注入)值向列表中注入无效的复选框。

1 个答案:

答案 0 :(得分:2)

用户可以在已经在浏览器上呈现的页面上注入他想要的任何内容;但是,与列表中的复选框关联的实际值将在ViewState中进行编码。反过来ViewState进行哈希处理(默认情况下,至少),因此,某个人操纵通过其中一个复选框发回服务器的值的唯一方法是操纵ViewState立即抛出异常。

话虽如此,散列并非绝对正确,您应采取措施确保ViewState未被篡改。例如,您还可以encrypt使ViewState更加困难,但会导致性能下降。

我只是在允许使用之前以编程方式验证值。借用Uwe的话语,永远不会信任用户输入