【问题标题】:Javascript "onClick", "onSubmit" [duplicate]Javascript“onClick”,“onSubmit”[重复]
【发布时间】:2013-04-09 19:56:36
【问题描述】:

我想到了:

是什么阻止了某人通过使用 Firebug 之类的工具删除 HTML 表单的“onSubmit”来规避表单验证?

我知道 Javascript 并不是唯一的验证形式,但如何确保不会以这种方式规避 Javascript 验证?

如果可能,我希望继续使用“onSubmit”方法,因为它已经存在,但我愿意接受其他选择。

我应该说清楚,我确实有服务器端验证。我只是想让删除 JS 验证尽可能困难。

【问题讨论】:

  • 服务器端验证..??
  • > 什么停止了——什么都没有。客户端验证应与服务器端配对使用。
  • thisthis
  • 浏览器甚至不需要提交表单。可以发送甚至不符合 HTTP 规范的任意数据流。

标签: javascript jquery validation


【解决方案1】:

是什么阻止了某人通过使用 Firebug 之类的工具删除 HTML 表单的“onSubmit”来规避表单验证?

什么都没有。提供客户端表单输入检查是为了用户的方便(它允许即时和上下文反馈,而无需求助于服务器的往返),而不是服务器的安全性。您还需要检查服务器上的数据。

我知道 Javascript 并不是唯一的验证形式

是的。

但是如何确保不会以这种方式规避 Javascript 验证?

你不能,这就是为什么它不是唯一的验证形式。

【讨论】:

  • 这不是唯一的验证形式。我知道这不是故意的,我只是想让移除它变得困难。
  • 你不能让它变得困难。
  • 无论如何让它难以删除是没有意义的,因为客户端验证的唯一目的是让用户感到舒适。
  • 任何你试图让它变得困难的事情对你来说都是更多的工作,对于无辜的用户来说更有可能失败,但没有更多的安全性。
【解决方案2】:

无法阻止用户更改 HTML 页面中正在运行的 JavaScript 代码。这就是为什么强烈建议在服务器端重复表单数据验证的原因。

【讨论】:

    【解决方案3】:

    你什么都做不了。

    1. Javascript 是客户端,你不应该依赖客户端代码。用户可以篡改数据并将其发布到服务器端。
    2. 在服务器端,您还需要检查文档的有效性。

    【讨论】:

      【解决方案4】:

      是什么阻止了某人通过使用 Firebug 之类的东西删除 HTML 表单的“onSubmit”来规避表单验证?

      什么都没有。验证是一种客户端方式,告诉用户如果不提交,他们的输入将不会被接受。您还应该有强大的服务器端验证才能使其正常工作。

      应该没有只在客户端的关键验证。

      【讨论】:

        猜你喜欢
        • 2019-12-14
        • 2018-11-03
        • 2017-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多