您将用户输入验证放在 Web 表单应用程序的什么位置?
- 视图:JavaScript 客户端
- 控制器:服务器端语言(C#...)
- 模型:数据库(存储过程或依赖项)
我认为每个级别都需要验证:
- 用户是否输入了一个合理的值
- 是日期实际日期,是数字实际数字...
- 再次执行 1. 中的所有检查,并检查恶意攻击(IE XSS 或 SQL 注入)
- 1.中所做的检查主要是为了避免用户出错时服务器往返。
- 由于它们是在 javascript 中在客户端完成的,因此您不能相信它们是在运行的。再次验证这些值将阻止一些恶意攻击。
- 是否满足依赖关系(即用户是否向有效问题添加了评论)
- 一个好的界面使这些很难违反。如果有什么东西在这里被抓住了,那么事情就很不对劲了。
[受此响应的启发]