我有一个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.
我认为这是因为viewstate散列中的完整性受到了损害,这是正确的吗?这可以被绕过吗?
谢谢
发布于 2010-02-28 11:51:03
实际上,只要页面的EnableEventValidation = true (这是默认设置,但您可以在每个页面或web.config中禁用它),您就应该能够假定客户端的下拉列表选项没有更改。如果将新值添加到dropdownlist客户端,并且发生回发,则将发生错误,除非您为事件验证(http://odetocode.com/blogs/scott/archive/2006/03/21/asp-net-event-validation-and-invalid-callback-or-postback-argument-again.aspx)注册此新值
发布于 2010-02-28 11:27:34
不,你不能这么假设。
您应该始终认为所有输入都是不受信任的,并适当地对待它(确保它是它应该是的,它的类型是正确的,并且当前用户(或其他用户)可以访问它,等等)。
https://stackoverflow.com/questions/2349956
复制相似问题