我的页面中有个表单,里面很多的 TextBox 和 Lable,其中有的些TextBox 根据用户的权限被设为只读的,不充许编辑。然后我在浏览器中通过源代码把那些只读的TextBox 中的值改了。没想到竟然提交修改成功了。
我记得好象页面有个属性可以验证回发的页面的有效性,忘了是什么了。请问这样的问题该如何避免。如果页面中存在这样的Bug 实在是太恐怖了。
对于ViewState可以打开ViewStateMac来进行验证,对于普通的表单数据,验证正确性应该是网站开发者的任务,任何一个框架都没有给出全自动化的解决
没办法
其实实际上客户端和服务器端 就没有必然的关联
所以才会出现那么多注入bug
但是你的数据是否有效是可以自己验证的
还有一些数据本来改了页没关系
换句话说实际上只有能够影响程序的数据 才存在危险
一般来说如果用户不知道你的程序结构
即时能够改回传数据
也不容易影响你的程序
不过只要你对那些有影响的地方控制严格了 基本就没有什么问题了
每个回发的页面都有一个自己标识的ID去检测。
如果全是只读,可以用ViewState 判定。永远不要过分相信客户端。
ValidateRequest="true" 可以在页面指令中添加 也可以在web.config中配置。
相关文章比较多
Page.ViewStateUserKey = SessionId
one click attack
不过好像在负载均衡下不行
ViewState 校验打开 慢就慢点 免得你担心