一些用户绕过客户端验证

时间:2016-03-21 10:40:04

标签: javascript jquery forms validation

我试图深入了解一些网站用户如何绕过客户端javascript表单验证。我有一个多步骤的表单,无法使用javascript关闭,因为它的步骤在你进展时显示/隐藏,并且提交按钮通过ajax工作(即它没有type="submit"属性)。 / p>

我正在使用1000hz validator.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

我试图使用类似的设备复制它,但验证似乎工作得很好。

1 个答案:

答案 0 :(得分:0)

正在进行输入验证的库可能没有加载。可能有多种原因:

  1. 库的http请求失败 - 最终用户可能无法访问库所在的域;
  2. 最终用户安装了一些第三方插件,例如有一个广告拦截插件,可防止该库运行;
  3. 代码中存在导致库在特定浏览器上进行编译的错误;
  4. 最终用户正在控制他希望运行的脚本;
  5. 您应该切换到服务器端验证,以防止发生进一步的错误。