假设我有一个带有一些禁用复选框的表单,因为登录的用户不应该检查它们。我应该在哪里添加一些清理安全性以确保它们没有破解复选框并导致回发?
在页面中? 数据库层? 在数据库中?
我意识到这很可能是一个非常广泛的问题。
感谢, 标记
答案 0 :(得分:4)
如果您确实需要确保安全,请在所有层上实施检查。至少,从数据库和数据访问层开始。
答案 1 :(得分:1)
我更喜欢在可能的情况下让用户无法完全隐身的东西。你不能破解你看不到的东西(我并不是说隐藏在页面上,我的意思是服务器没有为用户看不到的东西生成代码看不到)。
也就是说,假设您需要保持控件可见但禁用,我会在前端和后端添加代码来进行检查。前端验证代码易受黑客攻击,但为使用该系统的用户提供快速验证反馈非常好 - 但是,后端应该是您真正的故障安全位置,以确保一切都符合预期在提交更改之前进行最终检查。
不幸的是,有时候你需要复制这些努力,但对于非常重要的东西,这是值得的。
答案 2 :(得分:0)
ASP.NET事件验证机制负责这一点。我认为它自2.0以来一直存在。