使用inspect元素删除表单ID会删除Jquery验证

时间:2017-01-19 13:47:54

标签: php jquery codeigniter validation

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

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

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

2 个答案:

答案 0 :(得分: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">

答案 1 :(得分:1)

原因是客户端验证是必须的,但是当涉及到&#34;安全&#34;不信任用户。如您所述,用户可以将任何数据作为验证数据发送。因此,最佳解决方案是在后端/服务器端验证中验证相同的数据。

在Codeigniter中附带了很好的验证库,您可以看到here

为了您的观点

  

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

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