【问题标题】:Removing form id using inspect element removes Jquery validations使用检查元素删除表单 id 会删除 Jquery 验证
【发布时间】:2017-06-04 05:53:56
【问题描述】:

我正在使用PHP codeigniter 框架。我使用了jQuery validations,如下所示

$('#form_id').validate({
   rules here,
   messages here
});

我有关于安全的问题。如果我通过检查元素删除表单 ID,则 jquery 验证不会运行。我知道它可以通过使用客户端验证来处理。但只是考虑是否有任何其他解决方案,因此用户无法删除表单 ID

【问题讨论】:

  • 数据必须在服务器端进行清理和验证。总是。验证数据客户端是一个很好的工具,可以更快地向用户显示错误,但永远不要相信这个“​​验证”的数据。

标签: php jquery codeigniter validation


【解决方案1】:

我认为没有办法阻止某人删除 HTML,但您可以先检查表单 ID 和输入是否存在,然后再进行其他验证。

类似:

$("form").submit(function(event){
  if ($(this).attr("id") != 'form_id') {
      event.preventDefault();
      alert("Missing or Altered Form ID");
  } 
  if (this.FirstName === undefined) {
      event.preventDefault();
      alert("Missing Input Fields");
  }
});

**FirstName 是输入的名称:

<input type="text" name="FirstName" value="Mickey">

【讨论】:

    【解决方案2】:

    当然,客户端验证是必须的,但是当涉及到“安全性”时,不要信任用户。正如您提到的,用户可以将任何数据作为验证数据发送。所以最好的解决方案是在后端/服务器端验证相同的数据。

    在 Codeigniter 中带有很好的验证库,你可以看到 here

    为了你的观点

    是任何其他解决方案,因此用户无法删除表单 ID

    假设您问的是与 Java 脚本相关的问题,答案是否定的。因为 Java 脚本在客户端/用户浏览器上运行,并且有一些方法可以更改或删除表单 ID,所以我们无法控制用户编辑我们的脚本,所以我们无法确保我们从用户那里得到什么解决方案是按照我上面提到的那样进行后端验证,希望这会有所帮助。

    【讨论】:

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