繁体   English   中英

为什么在 HTML5 验证存在时在 Spring MVC 中使用 @Valid

[英]Why use @Valid in Spring MVC when HTML5 Validation exists

当页面上存在 HTML5 验证时,为什么要使用 @valid 注解?

我们可以专注于业务逻辑,而不是添加额外的控制器来验证。 是因为使用 web 页面有任何错误吗?

您不能让服务器依赖于客户端验证,

如果用户在未经验证的情况下使用旧页面或用户将直接向服务器发送请求(或用户操作 HTML 作为@Chris 评论),

然后验证将不会发生,并且

服务器验证确保您保持数据完整性

它还可以防止恶意攻击,例如 SQL 注入(例如,如果您不使用 PrepareStatement)

实际的数据提交请求可以被拦截、捕获、更改和重放。 在重放期间,恶意用户可以更改请求的正文以提交他们想要的任何数据。 无论前端技术和框架如何,您的后端最终都会收到数据请求。 您如何处理该请求的内容会有所不同。 这就是为什么您的用户提交的每一点数据都必须在您的后端进行验证。

TLDR;:永远不要相信用户提交的数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM