【问题标题】:Is it possible for user to submit a form if submit button is disabled? (Asking because of PHP validation)如果提交按钮被禁用,用户是否可以提交表单? (因为PHP验证而询问)
【发布时间】:2011-06-15 17:45:13
【问题描述】:

当我的表单加载到页面上时,提交按钮默认是禁用的。 用户是否可以在禁用此提交按钮的情况下提交表单? (恶意或意外。)

我问是因为我在提交时通过 Javascript 验证了表单信息,但我当然是在我的 PHP 脚本中验证信息。话虽如此,我是否需要真正在服务器端验证该信息?提交按钮通过 Javascript 启用。 那么,如果用户禁用 JS(从而通过 JS 验证),他们甚至可以提交表单吗?我的猜测是否定的,但我正在寻找一个确定的答案。

如果答案是否定的,那么我真的不需要做 PHP 验证,因为用户无法通过 JS 验证,对吗?

谢谢!

【问题讨论】:

    标签: php javascript html validation forms


    【解决方案1】:

    是的,即使被禁用,此人也可以“提交表单”。即使根本没有表格,他也可以提交。他可以简单地向处理带有所需字段的表单的页面发送 HTTP 请求。 强烈不鼓励依赖 JavaScript 进行验证。

    【讨论】:

    • JavaScript 仅用于可用性,它与安全性无关。无论您认为用户如何输入数据,您都必须验证来自用户的每一条数据。
    【解决方案2】:

    用户可以绕过禁用的提交按钮,以及与此相关的任何客户端限制。没有客户端安全之类的东西。要对付黑客,您必须始终将验证放在服务器端。客户端验证只是为了表象。

    具体来说,他们可以通过以下方式绕过禁用的提交按钮:

    • 通过 JavaScript 控制台启用它(例如 Firebug)
    • 通过编辑 DOM 来启用它。
    • 不使用表单直接发送HTTP请求

    【讨论】:

    • 完美答案,感谢您提供有关如何绕过它的详细信息!现在看到这些答案后,我觉得自己像个傻瓜一样没有意识到!
    【解决方案3】:

    是的。有很多方法。如果表单有文本字段,则可以使用返回按钮提交(除非您使用 JavaScript 主动阻止)。此外,任何半途而废的用户都可以使用 FireBug 或其他工具即时编辑页面的源代码,并在他们喜欢的情况下启用提交按钮。

    【讨论】:

      【解决方案4】:

      您还需要在服务器端进行验证。以防万一javascript在客户端关闭,或者他使用firebug和其他类似工具篡改代码。

      【讨论】:

        【解决方案5】:

        假设用户可以完全控制客户端,并且可以使用浏览器/脚本/命令行应用程序/等通过网络读写他想要的任何内容...

        这意味着您必须验证服务器端以确保经过净化的响应。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-02-03
          • 1970-01-01
          • 2016-04-03
          • 2015-06-24
          • 1970-01-01
          • 1970-01-01
          • 2013-04-10
          • 2020-01-04
          相关资源
          最近更新 更多