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