-2

我有一个复杂的表单,其中包含一些使用 JS/jQuery 动态生成的字段。

这一代的问题是在服务器端验证这些字段的复杂性。我不知道我是否应该存储由 JS 生成的表单和值,并尝试在服务器端进行验证,或者在客户端使用另一种方法,如 validate all(我认为更容易)。

  • 我的问题 1 是:可以使用 JS 进行所有验证吗?有一些 JS 验证框架可以帮助我完成这项任务吗?我已经看到并找到了 LiveValidation(www.livevalidation.com),这是我需要的吗?

  • 问题2:使用这种方法我会遇到什么问题(validata all on the client)?

一些线索,想法?

最好的祝福,

4

3 回答 3

1

是的,除了可以绕过所有客户端验证的阴暗面之外,很有可能在客户端进行所有验证。Jquery Validate Plugin是一个很好且简单的执行验证插件

于 2013-02-06T11:24:34.150 回答
1

客户端验证仅用于 UX 目的(速度、易用性、用户友好性、即时响应等),从不用于真正的验证。JS 验证很容易绕过。甚至可以在不使用表单的情况下向服务器提交数据,从而完全跳过客户端。

出于安全目的,服务器应该进行验证。您的验证逻辑应该适应表单的动态特性。

据我所知,动态表单通常使用数组表单,例如 PHP 中的这个。这样,很容易在服务器端查看动态表单,尤其是那些具有重复字段组的表单。

于 2013-02-06T11:25:24.540 回答
1

安德烈,我们一直这样做。Javascript 验证是一个关键点,必须在提交之前执行,主要原因是

  • 使网站/页面用户友好
  • 在将数据发送到服务器之前不要实际检查、验证、修复数据,因为可以轻松绕过 JS 验证(因此应该总是有另一轮检查服务器端),这要归功于 Firebug、Chrome 和一个一堆命令行工具。

例如,您使用 JS 验证

  • 确保用户填写了所有必填字段,并指向缺少的字段(焦点)
  • 检查输入数据的类型,并警告用户
  • 确保字段一致性(卡号、生日、fieldX 和 fieldY...)
  • ...

此外,回答你的最后一个问题,并解释答案的开头(不疼)

  • JS 验证不能确保发送到服务器的数据是干净/可靠/一致的(它不能因为 JS 验证很容易被绕过)
  • 服务器必须对所有字段执行相同或更强的验证,并且永远不要相信用户输入(SQL 注入风险等)。
于 2013-02-06T11:43:59.610 回答