使用代码检查器编辑DOM客户端以操纵服务器端行为


Editing DOM client side using a Code inspector to Manipulate server side behaviour

我有一个表单,其中每个字段通过它们的class属性被赋予某些属性。

。是一个必需的输入,并且期望它的值被格式化为一个电子邮件地址。

使用Javascript/jQuery,我迭代了表单中的所有输入,确定了每个人的相关属性(如果有的话),并通过ajax提交它们,以便使用PHP进行后处理服务器端。

因此PHP将在上面的输入示例中确定$_POST["email"]是否1)有值,2)值是否为电子邮件地址。

我没有遇到任何问题,使任何预期的行为工作。我的问题/关心的是如何防止用户在提交表单之前使用代码检查器工具(如FireBug)操纵每个字段的属性,即删除"email"id的"required"类,以便他们可以在不提供电子邮件输入的情况下成功提交表单。有什么办法可以防止狡猾的用户利用这一点吗?或者这仅仅是我如何设计表单验证的结果?

Javascript对于在表单未正确填写时向用户提供即时反馈很有用,因此他们不必经历"填写表单,提交,返回错误页面"的往返。

但它绝不应该是唯一的验证方法。无论如何,测试表单以确保通过Javascript输入了有效的电子邮件,但您也必须在服务器上这样做。根据定义,浏览器中的一切都在用户的控制之下,这意味着任何东西都可以被轻易地绕过/伪造/操纵/颠覆。

你无法控制用户在客户端做什么,他们可以禁用javascript或者像你说的用firebug操纵表单,

您应该关注的是在服务器端创建一个健壮的验证,以防止他们添加无效数据。

客户端验证是礼貌的,服务器端验证是必需的!