【问题标题】:Jquery Form Validation for Forms表单的 Jquery 表单验证
【发布时间】:2014-04-17 21:03:36
【问题描述】:

我正在构建一个注册表格,包括使用信用卡。我现在正处于表单验证阶段,以确保用户在正确的字段中输入正确的数据。然而它让我思考。依靠 Jquery 对这个表单进行表单验证是否安全?JQuery 是否兼容所有浏览器,包括我们最喜欢的 IE 版本?

至于姓名、地址、城市等一般字段...我使用的 JQuery 脚本只是验证它们是否是必需的。

我打算用它来处理信用卡的东西:http://jquerycreditcardvalidator.com/

或者您是否知道一种更好的解决方案来处理所有主流浏览器都非常有效和可靠的表单验证?

【问题讨论】:

  • 别忘了做服务器端验证。服务器端验证是强制性的,客户端验证是“很高兴”。
  • 您可以使用input required 并更正input type 属性,让浏览器在客户端验证它,然后在服务器上再次验证。

标签: javascript php jquery .net jquery-plugins


【解决方案1】:

这里有银行和支付处理器相关的人
根据我的经验,我使许多项目都符合 PCI DDS 标准。

请记住我的话,您永远不能依赖客户端验证。 jQuery 验证只能帮助消费者避免打字错误、遗漏字段或忘记信用卡中的数字。用于 CC# 验证的 Luhn 算法大多数 CC# 验证器使用的只是检查校验和以避免跳过或输入错误的数字(即使在这种情况下它也不是 100% 可靠的,它只检查 通常常见 错误),它不检查卡号本身是否有效。

另一方面,当黑客扫描您的网站或试图破解它时,他从不使用他的浏览器(和您的 jQuery 脚本)。他们总是使用浏览器模拟脚本将值(一次尝试数十、数百、数百万次)直接发布到您的表单,避免您的 HTML 机制和 JavaScript 验证。您应该始终在服务器端进行验证。这是必须的。客户端验证只是点缀、方便,但绝不是一种安全措施。

此外,您的支付表单可以运行多种类型的攻击,包括 SQL 注入、XSS 攻击、CSRF 攻击,它们都应该在服务器端进行处理。

在安全性方面永远不要依赖 Javascript 和 jQuery。注意安全!

【讨论】:

  • 你说“它不检查卡号本身是否有效。”但是一旦我将其传递给他们,Authorize.net 是否不会执行验证部分(有效、接受和拒绝)?我只是确保他们输入了足够多的数字可能是一张有效的卡?没有?
  • 卡不能被“检查”,除非它最终提交给支付系统,提交给银行。在提交之前,您可以通过格式和校验和检查它的“近似”正确性。您还可以从卡号猜测卡类型(例如,AmEx 或 Visa)——这不是秘密,它的公开信息可以在任何地方找到。我们的 CC# 字段附近也到处都有“正确”图标。但这只是一种方便。在发送到银行之前没有办法 100% 检查它,而且你不能只依赖客户端检查器,服务器端检查是必须的。就像,总是。
猜你喜欢
  • 2011-07-12
  • 2013-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多