有没有办法使用通用代码库在 Java 和 JavaScript 中进行输入验证?

het*_*log 5 javascript java spring-mvc hibernate-validator

对于java web应用程序,通常我们需要在前端使用javascript进行验证,然后在后端使用java进行验证,后端可以使用一些java验证工具,如hibernate验证器,而在客户端则有jquery表单验证,

但问题是,有没有更简单的方法将两者结合起来?例如,当使用带有hiberate验证器的springmvc时,前端验证会自动出现吗?谢谢

Mal*_*lio 2

不要忘记,有两种截然不同的验证形式。

首先,进行验证以确保用户做出合理的输入。考虑通常的密码/确认密码系统。确认密码字段的唯一意义是防止用户意外给自己带来不便。

同样,检查有效的电子邮件地址、必填字段等之类的操作只是为了确保用户输入的内容是他真正的意思。

其次,进行验证以确保仅对系统进行合法的更改。一个用户不能更改属于另一用户的数据,员工不能给自己加薪,等等。

第一种验证只需在 Javascript 中完成。如果使用者愿意的话,他可以打败他们,但他除了自己之外不会伤害任何人。

第二种验证必须在后端完成。通常,但并非总是如此,没有必要优雅地犯错误。如果用户已经绕过了 UI,或者对 AJAX 进行了逆向工程,那么您不必客气。只需返回 500 并记录入侵即可。

有一些重叠。例如,如果用户正在创建一个(据称)唯一的用户名,则在通过所有 Javascript 检查后,该唯一性检查可能会在最后一秒失败,因为其他人使用了以前未使用的名称。

但这是例外,而不是规则。大多数后端验证只是非常薄弱的​​安全性或类似安全性的检查,与前端所做的非常不同。

  • 好吧,实际上,我几乎不同意你的第一部分。对我来说,这看起来防御性不够......所以,我的问题是,如果我们需要足够的防御性来对 js 端和服务器端进行双重检查,是否有一种好方法可以只编写一次简单的代码? (3认同)