我有一个关于JS中表单验证的问题。我知道应用程序的大部分输入必须在服务器端进行验证,但如果你也在客户端进行验证,你将避免向服务器发出不必要的请求。
另一方面,你的数据验证逻辑将在你的客户端代码中暴露出来(在我看来,绕过应用程序安全性的机会会更多(,此外,还会有代码重复(在服务器和客户端(,如果一切正确,还会进行双重检查,这不是最好的性能。
有什么标准吗到目前为止,我一直在后台做所有这些事情,但我对此有点好奇。
我非常感谢一位经验丰富的程序员的建议(如有必要,请列出优点和缺点(。
谢谢。
Cybercreep可以通过恶意构建的请求攻击服务器端应用程序。他们不必使用你的客户端代码来做到这一点,相反,他们可以破解自己的客户端脚本。因此,您的服务器代码必须进行所有必要的验证,以保护您的应用程序免受攻击。它不能依赖客户端的安全性和完整性验证。
客户端应用程序还可以验证其输入。例如,如果用户在日期字段中输入了自己的名字,或者犯了其他类似的错误,它可以警告用户。您这样做是出于对用户的礼貌,以使您的应用程序更易于使用。
我没有那么多经验,但我的意见是,只有在影响UI/UX的情况下,我才会在客户端进行验证。它可以是关于权限的东西,所以UI可以禁用一些东西,例如。另一个方面是数据类型,这可以在客户端受到限制,但这不是验证。
在这里,您可以找到信息系统最常见漏洞的列表。如果不在FE端进行验证,则存在XSS攻击的风险。另一方面,如果你不在BE端进行验证,就会有注入、敏感数据暴露等风险。
因此,总结我的观点,我认为最好的办法是在双方都进行验证。
附言:这只是我个人的看法,我是初级开发人员。