我有一个复选框列表,其中包含一些值参数设置为数据集过滤器的项目。这些值是否在回发时得到验证,以确保它们在有效复选框的范围内,或者用户是否可以使用有害(sql注入)值向列表中注入无效的复选框。
答案 0 :(得分:2)
用户可以在已经在浏览器上呈现的页面上注入他想要的任何内容;但是,与列表中的复选框关联的实际值将在ViewState
中进行编码。反过来ViewState
进行哈希处理(默认情况下,至少),因此,某个人操纵通过其中一个复选框发回服务器的值的唯一方法是操纵ViewState
立即抛出异常。
话虽如此,散列并非绝对正确,您应采取措施确保ViewState未被篡改。例如,您还可以encrypt使ViewState更加困难,但会导致性能下降。
我只是在允许使用之前以编程方式验证值。借用Uwe的话语,永远不会信任用户输入。