5

我有一个 DropDownList,我正试图防止它被用作攻击媒介。我可以假设用户无法实际更改 DDL 的值并回发到服务器吗?目前,如果我在提交后尝试更改数据包,则会抛出此 ASP.NET 错误消息:

For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.

我是否认为这是由于视图状态哈希中的完整性受到损害?这可以绕过吗?

谢谢

4

2 回答 2

3

不,你不能这样假设。

您应该始终认为所有输入都是不可信的,并适当地对待它(确保它是它应该是的,并且它是正确的类型,并且当前用户(或其他)可以访问它,等等)。

于 2010-02-28T03:27:34.387 回答
3

实际上,只要页面具有 EnableEventValidation = true (这是默认设置,尽管您可以按页面或在 web.config 中禁用它),您应该能够假设下拉列表选项没有更改客户端。如果将新值添加到您的下拉列表客户端,并且发生回发,则会发生错误,除非您注册此新值以进行事件验证(http://odetocode.com/blogs/scott/archive/2006/03/21/ asp-net-event-validation-and-invalid-callback-or-postback-argument-again.aspx )

于 2010-02-28T03:51:03.480 回答