java - 有没有一种方法可以使用通用代码库在 Java 和 JavaScript 中进行输入验证?

标签 java javascript spring-mvc hibernate-validator

对于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/

相关文章:

java - BufferedInputStream 类中的 Skip 方法未精确跳过 n 个字节

java - 等待事件发生的队列

javascript - 使用outerHTML重写html时避免页面刷新

json - angularjs + spring mvc + json post 请求

mysql - Hibernate ObjectNotFoundException,即使表中存在记录

java.lang.NoClassDefFoundError : Failed resolution of: Landroid/support/v4/content/LocalBroadcastManager only on Build APK 错误

java - Android:FragmentManager 版本不匹配

javascript - 使用 mocha 测试调用内部 Promise 的函数

javascript - Phaser Sprite map 定位

java - 带有泛型的命令对象