后端服务中的数据验证

时间:2018-04-02 09:25:44

标签: validation spring-boot backend

我在spring-boot中为Android应用程序创建了一个后端代码。

我的问题是,是否有任何规则可以区分后端或前端的验证?

例如 - 对于用户创建空白字段应仅在前端检查,但仅测试后端服务是否可以在后端进行验证。

如果我们只是在前端进行验证,那么当我们单独测试后端服务时会出现问题。

2 个答案:

答案 0 :(得分:1)

作为一般规则,从客户端发送的数据不可信任。例如。即使客户端验证字段不为空,您也应该假设该字段根本未经过验证。

您也应该在后端实现类似的验证逻辑。 Here's the starting point用于根据JSR-303实现对Spring的验证。

答案 1 :(得分:1)

不仅仅是" ok"要在后端进行验证,但这是必需的。正如@hovanessyan所提到的,您永远不会信任来自客户端的数据。决不。

根据经验,API需要防弹。应涵盖并测试所有边缘情况(零安全,类型安全,最小/最大,自定义验证)。没有什么比使用500响应的API更糟糕了。

许多开发人员注意到前端和后端之间存在一些验证逻辑重复,这也是Node.js等技术变得如此受欢迎的原因之一 - 理论上你可以分享验证。

此外,不要因为必须复制验证逻辑而气馁。这很乏味但很必要。