对于java web应用,通常我们需要在前端使用javascript进行验证,然后在后端使用java进行验证,后端可以使用一些java验证工具,如hibernate validator,而在客户端则有jquery 表单验证,
但问题是,是否有更简单的方法将两者结合起来?例如,当将 springmvc 与 hiberate validator 一起使用时,前端验证会自动存在吗? 谢谢
最佳答案
不要忘记,有两种截然不同的验证形式。
首先,验证以确保用户输入的内容合理。考虑通常的密码/确认密码系统。确认密码字段的唯一意义是防止用户意外给自己带来不便。
类似地,检查有效的电子邮件地址、必填字段等——它们只是为了确保用户输入的是他真正想要的内容。
其次,验证以确保仅对系统进行合法更改。一个用户不能更改属于另一个用户的数据,员工不能给自己加薪等等。
第一种验证只需要在 Javascript 中完成。如果用户愿意,他可以打败他们,但他不会伤害任何人,只会伤害他自己。
第二种验证必须在后端完成。通常,但并非总是如此,没有必要优雅地犯错。如果用户绕过了 UI,或者对 AJAX 进行了逆向工程,您不必客气。只需返回 500 并记录入侵。
有一些重叠。例如,如果用户正在创建一个(假定的)唯一用户名,那么在通过所有 Javascript 检查后,唯一性检查可能会在最后一秒失败,因为其他人使用了以前未使用的名称。
但那是异常(exception),不是规则。大多数后端验证只是非常薄的安全性或类似安全性的检查,与前端所做的非常不同。
关于java - 有没有一种方法可以使用通用代码库在 Java 和 JavaScript 中进行输入验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12257958/