我正在使用PHP codeigniter
框架。我使用了jQuery validations
,如下所示
$('#form_id').validate({
rules here,
messages here
});
我有关于安全性的问题。如果我通过inspect元素删除表单id,那么jquery验证不会运行。我知道可以通过使用客户端验证来处理它。但只是想是否有任何其他解决方案,以便用户无法删除表单ID
答案 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,因此我们无法控制用户编辑我们的脚本,因此我们无法保证从用户那里得到什么如上所述,解决方案是进行后端验证,希望这会有所帮助。