前端校验防君子,后端校验防小人。
Java项目开发中的前端、后端校验
写作背景
事情由今天项目上的一个正则校验所起。由于密码修改需要用到正则表达式,可能是由于之前写的正则表达式存在一定的问题,导致后端使用该正则进行校验没有任何问题,但是前端在进行匹配的时候总是不可以,事情就是这么个事情。
由此展开了一个讨论,为什么在优化正表达式之前明明就可以,而现在优化了正则之后出现了问题了呢?在讨论的过程中,前端工程师告诉我之前在前端未进行正则校验,听罢,一身冷汗。
这篇文章由此而来。
一、几点常识
- 后端校验比前端校验更安全、可靠
- 前端校验可以加强用户体验
二、几个原则
- 前端进行校验的内容,后端最好也都进行校验
- 后端校验的安全性更高一些
- and so on
三、常见前后端校验项
合法性校验
常规性校验以及业务校验
常规性校验
- 包括签名校验
- 必填校验
- 长度校验
- 类型校验
- 格式校验
- and so on
业务校验
- 根据实际业务而定,比如订单金额不能小于0
- 年龄、距离、身高等不能为负数
- and so on
1. 必须在后端校验的
- 唯一性校验
- 验证码
- 敏感词