在前端或后端验证必填字段的正确方法是什么?
Which is the right approach to validate a mandatory field in front end or back end?
我是后端开发新手。我已经写了 API 来更新用户信息,其请求体是这样的 -
{
"id": 26,
"email": "tom.richards@yahoo.com",
"firstName": "Tommy",
"lastName": "Richards",
"photoUrl": null,
"userAddress": [
{
"id": 8,
"type": "home",
"addressLine1": "DP Road",
"addressLine2": "Main Street",
"city": "Los Angel",
"state": "CA",
"country": "USA",
"postalCode":915890
},
{
"id": 25,
"type": "office",
"addressLine1": "Dr Red Road",
"addressLine2": null,
"city": "SA",
"state": "CA",
"country": "USA",
"postalCode":918950
}
]
}
理想情况下,应该在前端[网站或Phone]或后端[服务器端]或两侧验证地址类型[在我的情况下是家庭或办公室]?哪个是验证地址类型的好方法?如果我们在后端验证它,这会导致任何性能问题吗?
注-
如果开发者传递任意字符串,DB中会创建类似传递字符串的地址类型。
后端验证它从任何 Web 请求中获得的所有内容是一种很好的方法,因为您无法判断它是来自您的网站还是来自其他来源(甚至可能是恶意攻击)的良好请求。后端必须保护自己并验证它得到的一切。
最重要的是,在某些(如果不是全部)情况下,在前端也进行一些验证是很好的,原因之一是如果您有一个请求,您知道后端将失败- 省去麻烦,在你提出昂贵的请求之前先检查一下
原因
前端验证:在服务器上验证,如果数据无效,用户必须等待响应。
后端验证:确保数据不会被入侵者更改。
Validate @database end : 像 Mongoose 一样提供内置和自定义验证。
根据要求,我们必须在更新用户个人资料之前交叉检查数据。
我是后端开发新手。我已经写了 API 来更新用户信息,其请求体是这样的 -
{
"id": 26,
"email": "tom.richards@yahoo.com",
"firstName": "Tommy",
"lastName": "Richards",
"photoUrl": null,
"userAddress": [
{
"id": 8,
"type": "home",
"addressLine1": "DP Road",
"addressLine2": "Main Street",
"city": "Los Angel",
"state": "CA",
"country": "USA",
"postalCode":915890
},
{
"id": 25,
"type": "office",
"addressLine1": "Dr Red Road",
"addressLine2": null,
"city": "SA",
"state": "CA",
"country": "USA",
"postalCode":918950
}
]
}
理想情况下,应该在前端[网站或Phone]或后端[服务器端]或两侧验证地址类型[在我的情况下是家庭或办公室]?哪个是验证地址类型的好方法?如果我们在后端验证它,这会导致任何性能问题吗?
注- 如果开发者传递任意字符串,DB中会创建类似传递字符串的地址类型。
后端验证它从任何 Web 请求中获得的所有内容是一种很好的方法,因为您无法判断它是来自您的网站还是来自其他来源(甚至可能是恶意攻击)的良好请求。后端必须保护自己并验证它得到的一切。
最重要的是,在某些(如果不是全部)情况下,在前端也进行一些验证是很好的,原因之一是如果您有一个请求,您知道后端将失败- 省去麻烦,在你提出昂贵的请求之前先检查一下
原因 前端验证:在服务器上验证,如果数据无效,用户必须等待响应。
后端验证:确保数据不会被入侵者更改。
Validate @database end : 像 Mongoose 一样提供内置和自定义验证。
根据要求,我们必须在更新用户个人资料之前交叉检查数据。