我有一个表格是这样的:防止用户绕过验证
<form id="loginForm" action="register.php" method="post" onsubmit="return validateForm();">
<p>Register:</p>
<p style="text-align: left;">Full name: <br><input type="text" name="name" required/></p>
<p style="text-align: left;">Email: <br><input id="email" type="text" name="email" onkeyup="validateEmail(value);"required/></p>
<span id="emailError" style="display:none;border:1px solid red;">Please enter a valid email</span>
<p style="text-align: left;">Username: <br><input id="username" type="text" name="username" onkeyup="validateUsername(value);" required/></p>
<span id="usernameError" style="display:none;border:1px solid red;">Username can only contain a-z, 0-9 and must be at least 6 characters long</span>
<span id="usernameTaken" style="display:none;border:1px solid red;">Username taken</span>
<p style="text-align: left;">Password: <br><input id="password" type="password" name="password" onkeyup="validatePassword(value);" required/></p>
<span id="passwordError" style="display:none;border:1px solid red;">Password requires one lower case letter, one upper case letter, one digit,no spaces and 6-13 length</span>
<input type="submit" value="Register">
</form>
的validateForm()函数只有在所有的领域都得到了验证返回“真”。但。
我注意到,这可以通过简单的“检查元素”,例如Firefox或Google Chrome,并将“onsubmit =”return validateForm();“更改为”onsubmit =“true;”来绕过。即使这些字段没有被验证,表单也会被提交。
我该如何预防?
谢谢!
_如何防止this_服务器端验证 – baao
永远不要信任Javascript验证,因为它们可以被停用....始终添加服务器端验证 – cl3m
通过在客户端和服务器上进行验证,您可以避免绕过验证不能防止在客户端绕过(至少不能使用有意义的或者值得的方法),但是如果你在服务器上执行任务,那么你很稳定。 – Jonast92