今天下午和小伙伴们开会想到的,在会上也和伙伴们简单沟通一下。在这里详细和大家分享一下对于这个话题的认知。如果要简单概括一下我的想法,那就是:对于数据验证而言,前端验证很有必要,但后端验证必须要存在。
什么是数据验证
数据验证其实就是数据的合法性校验,例如:用户填写的用户名或者地址是不是正确,格式是否正确等等。
为什么要进行数据校验。
基本可以开过为以下几点需求:
1,约束用户输入的内容
2,获取真实的用户信息
3,人性化的验证,提升用户体验
4,对自己系统的保护
前端验证和后端验证的区别
前端验证:它可以为用户提供快速反馈,做到快速响应,使用户能够及时察觉所填写数据的不合法性。基本上用JS脚本代码实现,不需要把数据提交到远程服务器。比如,鼠标移上去会有提示效果,鼠标离开,就会马上告诉你数据是否合法等等。
后端验证:不管在前端输入什么,确保前端端送往服务器最后处理的所有数据都是有效的,避免出现服务端漏洞或者不应该的异常。例如,正常的流程是用户需要验证身份之后才能有某些操作,但是通过 API 调用的时候,不需要认证也能直接执行相关操作,执行认证之后的各种权限。
数据验证的原则:
1.前端验证可以不完备,但后端验证必须要稳固
两点理由:
(1)可以通过某些工具绕过前端验证,后端验证是保证数据有效性的防线。
(2)前端验证有局限性。例如身份信息或者征信信息,需要调用第三方API,通过后端进行验证。
2. 前端验证同样很重要,可以优化用户的体验
前端验证不用提交数据,可以快速给出相应提示,提升用户体验,降低服务端的调用次数,减小压力。
一点总结
前端验证给用户带来方便,但是它不能保证安全性,可以被轻易绕过。因此,对于一个安全的数据验证方案,后端的验证是必须的,在每一个API调用时,必须考虑到这个要求。
扫描二维码或手动搜索微信公众号【架构栈】: ForestNotes