我正在构建一个带有管理员模块和用户模块的数据库支持的 Web 应用程序。管理员模块允许管理员修改存储在数据库中的实体的属性。用户模块根据数据库的状态提供动态生成的表单。
考虑以下用例:
- 用户请求包含表单的网页,其中显示的表单选项代表满足特定条件的数据库实体
- 包含动态生成的表单的请求页面加载。
- 管理员在数据库中对表单中加载的某些实体进行更改,使其不再符合在表单中显示的条件(即停用、取消关联)
- 用户提交表单时选择了至少一个不再满足表单中显示标准的实体。
在这种情况下,提交表单的服务器端验证应该通过还是失败?
为用户提供了一个有效的表单,但由于用户在页面上时的管理员更改,发布的表单内容相对于数据库的当前状态不再有效......
如果它应该通过,我应该在页面加载时根据数据库的状态验证数据(利用数据库历史记录或使用会话)还是过度杀伤力,相反我可以验证发布的实体是否有效但没有一定符合当前的形式标准?