JavaScript - 如果在提交到服务器端之前填写了所有字段,则可以签入表格吗?

时间:2013-02-06 11:18:45

标签: javascript validation

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

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

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

  • 问题2:使用这种方法会产生什么问题(客户端有效)?

一些线索,想法?

最诚挚的问候,

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

客户端的验证仅仅是出于用户体验目的(速度,简易性,用户友好性,即时响应等),而且从不进行真正的验证。 JS验证很容易绕过。甚至可以使用表单将数据提交到服务器而无需,从而完全跳过客户端。

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

据我所知,动态表单通常使用排列表单like this one in PHP。这样,很容易在服务器端查看动态表单,特别是那些具有重复字段组的表单。

答案 2 :(得分:1)

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

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

您使用JS验证,例如

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

此外,回答你的上一个问题,并解释答案的开头(没有伤害)

  • JS验证不能确保发送到服务器的数据是干净/可靠/一致的(不能轻易绕过JS验证)
  • 服务器必须在所有字段上执行相同的验证 - 或者更强 - 并且永远不要相信用户输入(SQL注入风险等...)。