2009-02-12 22 views
4

我们厌倦了在我们的Web应用程序中收到有关“无效回发或回调参数”的异常。哪些情况会导致此错误?禁用ASP.NET EventValidation

与用户交流之后,我们确定导致此问题的一个可能原因是他们点击导致回发的内容,然后在初始回发完成之前单击其他内容。

禁用事件验证有什么危害?为了它的价值,我们安装了SecureIIS以提高安全性。

UPDATE:在某些地方,我们使用Javascript来修改某些控件值,如下拉列表选项(我们这样做是为了提供更好的用户体验 - 更少的回传)。这很可能导致错误。我们对所有用户输入进行了严格的编辑,因此我们将继续禁用EventValidation。谢谢!

回答

8

事件验证确认这些值没有被手动篡改,例如,超出相关控制所允许的范围。例如,如果您有一个包含三个选项1,2或3的下拉列表,如果用户(或恶意中间人)将值更改为4,则验证将失败。

只要您在每个处理程序中进行自己的检查以确保传入的值是有效的,并且您的代码的构造方式使得意外的输入不会导致任何事情发生(最安全),那么使用验证关掉。

0

FWIW,我已经安装了SecureIIS多年,并没有遇到任何这些问题。