单纯的说这个问题的话,答案是不安全。因为在客户端进行的验证相当于“让用户自己验证自己”,很明显是不靠谱的。你不能避免一些恶意用户人为的修改自己的表单进行欺骗,也不能避免第三方对表单进行截获后进行篡改再提交。
所以说,从安全的角度来说,单纯的依靠js验证,是不安全的,任何健壮的系统都必须在后端进行验证。
但是要说JS验证有没有必要
是非常有必要的,因为首先JS验证速度很快,不需要HTTP交互,可以在本地验证,对于用户来说,提示错误会显得非常迅速。其次是普通用户一般占访问用户的绝大多数,也就是说,大部分的验证工作,都是有效的,在前端验证可以极大的减轻服务器的压力。
所以结论是,不能单单的依靠JS进行表单验证,后端必须也要验证。但是JS验证可以减轻压力、提高用户体验,所以也是必须的
我来举个例子,很简单的<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function formCheck(){//表单验证
var userForm=document.forms.userForm
if(userForm.username.value==null||userForm.username.value.length<=0){
alert("用户名不能为空")
return false
}else if(userForm.username.value.length<6||userForm.username.value.length>20){
alert("用户名必须为6-20位")
return false
}else if(userForm.password.value==null||userForm.password.value.length<=0){
alert("密码不能为空")
return false
}else if(userForm.password.value.length<6||userForm.password.value.length>20){
alert("密码必须为6-20位")
return false
}else{
userForm.submit()
}
}
</script>
</head>
<body>
<form action="" name="userForm">
userName:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>
<input type="button" value="提交" onclick=" formCheck()">
</form>
</body>
</html>