某些用户绕过客户端验证
Some users bypassing client side validation
我试图深入了解我的一些网站用户如何绕过客户端javascript表单验证。 我有一个多步骤表单,它不适用于关闭的 javascript,因为它的步骤会在您进行时显示/隐藏,并且提交按钮通过 ajax 工作(即它没有 type="submit"
属性)。
我正在使用 1000hz 验证器.js库来处理验证,并且通过广泛的测试,我相信它适用于表单上的所有输入。
表单上的一个字段是英国手机号码,因此它应该以 07 开头,长度为 11 个数字。 我为此检查使用了正则表达式pattern="^07'd{9}$"
,它工作得很好,因为除非正确输入格式,否则我无法继续使用表单。
通过查看表单提交,我发现大约 1% 的申请以无效格式输入此字段,例如 12 个字符长或带有特殊字符,例如国家/地区代码前缀(+44)
我不认为有任何恶意发生,例如人们试图使用工具发布这些数据,因为它看起来像有效的流量。
这些帖子的用户代理都略有不同,但其中很多似乎来自Android 4.4.2,即。
Mozilla/5.0 (Linux; Android 4.4.2; N830 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36
我尝试使用类似的设备复制它,但验证似乎工作正常。
执行输入验证的库可能未加载。这可能有多种原因:
- 库的 http 请求失败 - 最终用户可能无法访问库所在的域;
- 最终用户安装了某些第三方插件,例如具有广告块插件,这会阻止库运行;
- 代码中存在一个错误,导致库无法在特定浏览器上编译;
- 最终用户控制他希望运行哪些脚本;
应切换到服务器端验证,以防止发生进一步的错误。
相关文章:
- 如何在不使用mvc 4中的模型的情况下进行客户端验证
- MVC客户端验证的某个位置缺少链接
- 从javascript客户端验证REST服务
- asp.net web表单客户端验证始终回发
- 客户端验证 没有验证的属性上的成功消息
- 如何在客户端验证中验证两个变量规则
- ASP.net控件中的其他客户端验证
- AngularJS客户端验证:根据其他字段更改验证要求
- 小数、逗号和客户端验证的问题
- TextBox自定义Web控件和JavaScript客户端验证
- 使用 JavaScript 的客户端验证不起作用
- 如何将 2 个值与 MVC 中的客户端验证进行比较 ASP.NET
- 某些用户绕过客户端验证
- 检查客户端验证在服务器端成功/失败
- 客户端验证
- MVC 文件上传文件大小客户端验证
- 客户端验证 在具有实体框架的 MVC 中
- 自定义验证程序客户端验证函数未触发
- 使用 PHP 进行 JavaScript 客户端验证
- 如何在使用客户端验证时检查 Html.ValidationSummary 是否具有值