我目前正在进行一些有关验证的研究(例如用户表单)。
很明显,必须在后端进行验证,以防止“恶意”或恶意输入等。
前端验证还可以提高用户友好性,因为它通常更快,我们可以保存服务器往返。
我的问题如下: 做验证是不错的做法,例如仅在服务器端并返回由前端显示的本地化错误消息?
或者它是绝对禁止的,双方都应该进行验证吗?
即使完成了后端和前端验证,并且由于意外丢失前端验证而在后端发生故障,响应是否应包含要在前端显示的本地化信息?或者你只是展示一般的“出问题”的消息?
不知何故,我对来自API的本地化错误消息感到不好。
答案 0 :(得分:0)
关于你的主要问题:
My question is the following: Is it good practice to do the validation e.g. only on the server-side and return localized error messages that are then shown by the front end?
正如您所说,前端验证不仅对友好有益。 查看邮政编码验证的示例(它具有固定格式,因此很容易验证)。如果您未在前端验证,则可以向服务器发送许多请求(稍微“重载”服务器)并获得响应。这需要时间。在前端,立即进行验证。 此外,关于本地化:对于Web应用程序,例如在AngularJS中,有翻译模块(在Angular中有角度翻译)。
同时,后端验证也是一种很好的做法(没有人希望在数据库中存在错误数据或使软件崩溃)。
我有一个项目使用REST API和两个人(我在AngularJS中做了一个前端,他们在C#/ .NET中做了后端)。我问他们关于验证的好消息但不幸的是我只得到了“错误的请求”。 对于我作为开发人员来说,在开发期间它并不好,因为我不知道该消息是什么意思(我不知道这是我的请求或他们的错误的问题)。此外,我必须向用户显示消息:“表单问题”(这不友好) - 当然,我也有自己的验证。
摘要:最好对双方进行验证,此外,验证应该详细告知用户有关问题的详细信息(但没有那么多)。