我有一个复选框列表,其中一些项目的值参数设置为数据集过滤器。这些值是否在回发时进行验证,以确保它们在有效复选框的范围内,或者用户是否可以将无效复选框注入具有有害(sql 注入)值的列表中。
问问题
80 次
1 回答
2
用户可以在浏览器上已经呈现的页面上注入任何他想要的东西;但是,与列表中的复选框关联的实际值将在ViewState
. 反过来ViewState
又是散列的(至少默认情况下),因此,有人通过其中一个复选框来操作回传到服务器的值的唯一方法是通过操作ViewState
将立即抛出异常的值。
话虽如此,散列并不是万无一失的,您应该采取措施确保 ViewState 没有被篡改。例如,您还可以加密ViewState 以使其更加困难,但会导致性能损失。
在允许使用它之前,我会简单地以编程方式验证该值。借用上面 Uwe 的话,永远不要相信用户输入。
于 2012-08-22T15:15:44.467 回答