javascript - 在双方或仅在服务器端验证表单?

标签 javascript node.js validation frontend backend

我对 JS 中的表单验证有疑问。我知道应用程序的大部分输入必须在服务器端进行验证,但如果您也在客户端进行验证,您将避免对服务器的不必要请求。
另一方面,您的数据验证逻辑将暴露在您的客户端代码中(我认为会有更多机会绕过应用程序安全性),并且还会出现代码重复(在服务器和客户端中)和仔细检查一切是否正确,这不是最佳性能。
有什么标准吗? 到目前为止,我一直在后端做所有这些事情,但我对此有点好奇。
我非常感谢一位经验丰富的程序员的建议( 利弊列表 ,如有必要)。
谢谢你。

最佳答案

Cyber​​creeps 可以使用恶意制作的请求攻击您的服务器端应用程序。他们不必使用您的客户端代码来执行此操作,而是可以将自己的客户端脚本组合在一起。因此,您的服务器代码必须进行所有必要的验证,以保护您的应用程序免受攻击。它不能依赖客户端验证来确保安全性和完整性。
您的客户端应用程序还可以验证其输入。例如,如果用户将自己的名字输入日期字段或犯其他类似错误,它可以警告用户。您这样做是出于对用户的礼貌,以使您的应用程序更易于使用。

关于javascript - 在双方或仅在服务器端验证表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64044125/

相关文章:

file - 验证 doc docx 类型文件时出现 Laravel 5.1 错误

javascript - 显示 div 片刻,然后在 jquery 中切换到另一个 div

javascript - native 模块 - 返回 promise 时的最佳约定

javascript - Aptana Studio 3 MAC 操作系统在滚动 JavaScript 文件时间歇性卡住

node.js - 从 Node.js 中的 SQLite 获取表列表

node.js - Node.js 中的开头为 : TypeError: undefined is not a function

arrays - 转储整个数组 : console. 日志和 console.dir 输出 "... NUM more items]"

php - 如何在 1 个提交按钮上执行 2 个操作

Javascript/jQuery 表单验证

c# - 使用 S#arp 架构的 NHibernate 验证本地化