前端校验和后端校验的区别和优缺点
作为一个程序员,在平时的编程过程中,我们肯定会接触过数据校验。今天我们来讨论一下前端校验和后端校验的区别与联系。有这么一句话,叫做前端校验防君子,后端校验防小人。
通常来说,后端校验比前端校验更安全,更可靠,前端校验可以增加用户体验,一般来说,在前端校验的东西在后端也必须校验(比如登陆用户名、密码),有些东西在前端就可以校验,比如:字符串长度、邮箱格式、手机号码等等,没必要提交到后端,增加服务器的压力,正常情况下,前端校验的东西,最好后端都在校验一次,但在安全性方面,后端略胜一筹。
举个例子:比如说用bootstrap框架做的一个简单的用户新增页面,假设我们只做了前端检验,用户可以通过浏览器的控制台来人为的修改前端代码,如下图,虽然我们的邮箱格式不正确,但可以通过在控制台修改前端代码,人为地把数据插入到页面,假如我们在后台做了校验,就可以避免这种情况的发生。
这就是前面讲的,前端校验是防君子不妨小人的。后端校验可以防止接口被私自调用导致破坏数据库结构;避免有人模拟浏览器行为直接给服务器发请求。但前端校验便于用户纠正(快速反馈),并且减少服务器压力、节省流量(减少无意义的请求),主要对用户友好。各有优缺点。
后端校验的方法
1、可以在通过引入JSR303的jar,然后在实体类上加上相应的校验,比如正则表达式即可,也很方便。
2、接口方法参数前添加注解@Validated
3、对数据库中的相应字段进行校验,比如建立主外键约束、控制字段长度、是否为空、是否可重复等。