简单的问题。我应该发送" ConfirmedPassword"除了"密码"到我的WebApi后端?
我正在使用ASP.Net Core 2.1preview2,Web Api由Xamarin.Forms客户端使用。我觉得我可以确认一下"密码" ==" ConfirmedPassword" UI中的客户端。
有谁知道这是否有任何我不考虑的缺陷?
答案 0 :(得分:-2)
是的,您应该将密码和确认密码都发送到服务器,并在服务器上验证它们是否匹配。即使它是客户端正在做什么的冗余检查,也是如此。面向公众的web api,所有业务逻辑都应该在服务器端确认。应将所有客户端验证视为用户体验的便利。
在设计网络API时,我发现与当前客户端(通常是网络前端)相比,它更有一般地思考。如果您编写使用相同网络API的手机应用程序,该怎么办?甚至Postman也可以充当客户。对于所有客户,您要确认他们输入的密码是否匹配。
我查看了默认VS模板为您生成的默认AccountController。它有一个Register端点,它接受RegisterViewModel,它有密码和ConfirmPassword字段。密码会被比较,如果它们不匹配则会引发错误。
最后,没有通过这两个领域几乎没有收获。节省了多少钱?包含少量字符和字符串比较的单个字段。
传递额外的价值。始终进行服务器端验证。不要在那里采取任何捷径,特别是在安全方面。