我有一个复选框列表,其中包含一些项,这些项的值参数设置为数据集过滤器。这些值是否在回发时进行了验证,以确保它们在有效复选框的范围内,或者用户是否可以将无效复选框与有害的(sql注入)值一起注入列表。
用户可以在浏览器上已经呈现的页面上注入他想要的任何内容;然而,与列表中的复选框相关联的实际值将被编码在ViewState
中。ViewState
反过来被散列(至少在默认情况下),因此,某人操纵通过其中一个复选框发布回服务器的值的唯一方法是操纵ViewState
,这将立即引发异常。
话虽如此,散列并不是万无一失的,你应该采取措施确保ViewState没有被篡改。例如,您也可以对ViewState进行加密,使其更加困难,但这将导致性能损失。
在允许使用该值之前,我只需以编程方式验证该值。借用Uwe上面的话,从不信任用户输入。