Javascript 如何完全防止Web表单输入文本项更改

Javascript 如何完全防止Web表单输入文本项更改,javascript,jquery,forms,client-side-attacks,Javascript,Jquery,Forms,Client Side Attacks,我有一个简单的网页表单 <form id="MyFormDiv" method="post"> <input type="number" name="cmp_no" id="id_cmp_no"> <input type="text" name="cmp_lname" maxlength="40

我有一个简单的网页表单

<form id="MyFormDiv" method="post"> 
     <input type="number" name="cmp_no" id="id_cmp_no">
     <input type="text" name="cmp_lname"  maxlength="40 id="id_cmp_lname">  
     <input type="submit" name="submit" value="Save" id="submit-id-submit">
</form>


如果用户有足够的技能打开开发工具并从中更改值,那么他们也有可能更改任何阻止编辑只读值的JS代码

因此,没有什么可以替代正确的服务器端验证

您可以检查表单的
onsubmit
事件处理程序(见下文)中的值是否未被更改,但请记住我和许多评论者在上面所述的内容

$(“表格”)。关于(“提交”,函数(e){
//检查输入的值
if(this.someInput.value!=1){
//在这里做点什么
//返回false;如果要阻止提交
}
返回true;
});

提交

如果用户有足够的技能打开开发工具并从中更改值,那么他们也有可能更改任何阻止编辑只读值的JS代码

因此,没有什么可以替代正确的服务器端验证

您可以检查表单的
onsubmit
事件处理程序(见下文)中的值是否未被更改,但请记住我和许多评论者在上面所述的内容

$(“表格”)。关于(“提交”,函数(e){
//检查输入的值
if(this.someInput.value!=1){
//在这里做点什么
//返回false;如果要阻止提交
}
返回true;
});

提交

没有任何东西可以阻止用户更改浏览器中的值,您可以尝试上述答案中给出的解决方案,但请谨慎,用户可以通过使用firebug/inspect element/诸如此类的方法挖掘出许多这样做的方法

我们可以做的是在服务器端检查我们的值,并在值不匹配时提示用户

又喊了一声

永远不要信任/依赖客户….


没有任何东西可以阻止用户更改浏览器中的值,您可以尝试上述答案中给出的解决方案,但请谨慎,用户可以通过使用firebug/inspect element/诸如此类的方法来挖掘实现此目的的方法

我们可以做的是在服务器端检查我们的值,并在值不匹配时提示用户

又喊了一声

永远不要信任/依赖客户….


任何客户端可以更改的东西,如果您不想更改,请不要将其作为表单输入提供给用户,这就是您需要服务器端验证的原因。用户还可以做很多事情来处理这些数据。不仅表单可以被篡改。。。。该帖子可以通过多种不同的编程方式制作,完全不使用表单,但就像oracle apex一样,如果我将item属性设置为protected,那么当我从页面源更改它的值时,在更改它之后,它会引发错误并阻止页面提交。如果您不想更改,则可以更改客户端的任何内容。不要将其作为表单输入提供给用户。这就是您需要服务器端验证的原因。用户还可以做很多事情来处理这些数据。不仅表单可以被篡改。。。。该帖子可以通过多种不同的编程方式制作,完全不使用表单,但就像oracle apex一样,如果我将item属性设置为protected,那么当我从页面源更改它的值时,在更改它之后,它会立即引发错误并阻止页面提交。但是就像oracle apex一样,如果我将item属性设置为protected,那么当我从页面源更改它的值时,在我更改它之后,它会立即引发错误并阻止页面提交。但就像oracle apex所做的一样,如果我将item属性设置为protected,那么当我从页面源更改它的值时,在我更改它之后,它会引发错误并阻止页面提交。