如何阻止人们绕过我的JavaScript验证?

Ben*_*Ben 2 javascript validation

我在我的网站上有一个注册表格,我有3个输入框用于出生日期,其中编码如下...

<input name="dd" id="dd" type="text" value="DD" size="2" />
<input name="mm" id="mm" type="text" value="MM" size="2" />
<input name="yyyy" id="yyyy" type="text" value="YYYY" size="4" />
Run Code Online (Sandbox Code Playgroud)

然后我有一个JavaScript提交页面,它在Submit上运行.此页面检查字段是否为空,并且它们介于某个数字之间,例如介于1和31之间.
这是'dd'字段的JavaScript ...

var nulld=document.forms["create"]["dd"].value;
if (nulld==null || nulld=="")
  {
  alert("Please enter a day between 1 and 31");
  return false;
  }
var dd=document.forms["create"]["dd"].value;
if (dd >= 1 && dd <= 31)
  {}else{
  alert("Please enter a day between 1 and 31");
  return false;
  }
Run Code Online (Sandbox Code Playgroud)

所以我有这个代码,但是我注意到有人在这台计算机上禁用了JavaScript并且正在创建大量帐户并且数据不正确.我如何阻止这种情况发生?或者是唯一的方法来添加检查JavaScript是否被禁用的代码并将它们转移到这样的错误页面...

<noscript><meta http-equiv="refresh" content="1;url=nojavascript.html"></noscript>
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以在用户仍可以创建没有JavaScript的帐户但仍然具有验证的情况下执行此操作?

Que*_*tin 9

JavaScript验证仅适用于一件事:快速让用户知道他们要提交给服务器的数据将被拒绝.

您无法控制系统中的内容.你必须检查你开始处理之前,这些数据是合适的服务器上.


Esa*_*ija 7

不要担心让你的javascript比现在更"强大",他们可以发送该表单,甚至不使用浏览器,更不用说javascript了.您必须在服务器端验证数据,如果错误则拒绝它.

javascript验证对于那些启用了javascript的用户来说非常方便,因此无需向服务器发出请求即可获得快速反馈.

实现服务器端验证时,请考虑使其尽可能强大.例如,您的javascript验证通过无效日期.