Vic*_*tor 8 javascript validation web-applications client-side-validation server-side-validation
使用验证器同时使用客户端验证(JavaScript)和服务器端验证的论点是:如果客户端浏览器不支持JavaScript,则用户无法使用客户端验证.
我的问题是这个论点在实践中有多好?理论上它是有道理的,但在实践中,如果在浏览器中禁用JavaScript,那么大多数网站功能都无法工作.用户可能甚至无法在没有JavaScript的情况下加载页面,更不用说提交表单了.
Séb*_*uld 36
客户端验证只是避免了客户端"但我填写了所有内容并且它没有告诉我任何内容!".它实际上并不是强制性的,实际上,客户端验证是一件非常新的事情(阅读:5岁或更少).在实践中,它所做的只是阻止您的客户端(启用JS)在重新加载页面之前知道表单是否正常.如果AJAX在游戏中,则它是不同的 - 它允许您节省带宽以及在提交之前向用户提供反馈.最后,如果您正在构建严格的客户端,点对点交换应用程序(想想游戏),您将需要客户端验证来防止客户作弊.
服务器端验证也很重要,因为可以通过关闭JavaScript完全绕过客户端验证.在某种程度上,JS驱动的验证是一种便利和美学/美容改进,不应该依赖.此外,在本地编辑页面源是非常简单的,以便禁用或绕过最复杂的JS验证.
如果您不进行服务器端验证,用户可以做些什么?任何东西,取决于你如何使用他们的数据.您可以允许用户删除整个数据库(或者更糟糕的是,泄露它们),修改他们喜欢的任何内容(或者更糟糕的是,阅读他们喜欢的任何内容.目录遍历缺陷是顽皮人员非常常见的入口点),并随意提升他们的权限.你想冒这个风险吗?不验证用户输入就像信任人,而不是在你的房子上安装锁.
应始终在服务器端执行验证 - 您永远不能信任客户端验证.
客户端验证总是在提供更好的用户体验(UX)的意义上,因此用户不必仅仅因为表单中的值无效而提交和重新加载页面 - 它使事情变得更加动态.
由于您甚至不需要浏览器来发出请求,独立于您的网站依赖于JS正常工作,您将需要服务器端验证并清理所有用户输入,以防您不关心您的数据库.
现在,您是否想要提供具有动态客户端验证提示的UI取决于您.
| 归档时间: |
|
| 查看次数: |
33176 次 |
| 最近记录: |