读书人

话说客户端与服务器端印证

发布时间: 2012-10-29 10:03:53 作者: rapoo

话说客户端与服务器端验证

? 今天无意当中看了一位同事写的关于登陆页面的验证,由此引发了我对客户端与服务端验证的一点想法,只是个人一点粗略的见解:

一、客户端验证:对天客户端的验证一般都是通过JS来做的,像下面的这样一段代码

?在对用户录入的信息都只在客户端进行验证,事实表明这个是很不安全的。一般来说,客户端验证不外乎就是在表单提交前使用VBS或JS等对数据进行过滤,这对于大部分的用户来说是可行的。一旦用户设置浏览器禁止运行脚本代码,则所有客户端的验证都会失效。因此,强烈建议在编写网页时在客户端和服务器端都要进行数据验证。

二、服务端验证

public void validateUserLogin() {if(this.userid==null || "".equals(this.userid.trim())){this.addFieldError("userid", "用户名不能为空 !");}else{if(userid.length() < 6 || userid.length() > 60){        this.addFieldError("userid","用户名长度必须为6-60位 !");}if(!Pattern.compile("^[\u4E00-\u9FA5A-Za-z0-9]+$").matcher(this.userid.trim()).matches()){this.addFieldError("userid", "用户名格式不正确 !");}}if(this.userpw==null || "".equals(this.userpw.trim())){this.addFieldError("userpw", "密码不能为空 !");}else{if(userpw.length() < 6 || userpw.length() > 50){        this.addFieldError("userpw","密码长度必须为6-50位 !");}if(!Pattern.compile("^[A-Za-z0-9]+$").matcher(this.userpw.trim()).matches()){this.addFieldError("userpw", "密码格式不正确 !");}}if(this.checkCode==null || "".equals(this.checkCode.trim())){this.addFieldError("checkCode", "校验码名称不能为空 !");}else{if(checkCode.length()  != 4){        this.addFieldError("checkCode","校验码长度为4位 !");}if(!Pattern.compile("^[A-Za-z0-9]+$").matcher(this.checkCode.trim()).matches()){this.addFieldError("checkCode", "校验码名称不正确 !");}} }
?

这是一个通过struts2框架来做的一个验证方法,如果说在客户端的JS验证失效或者是被禁掉之后,这个仍然可以起到一个验证的作用。注意:通过这种方法来做的时候要注意,如果要在进入userLogin这个方法之前做验证,哪么这个验证方法的写法就是:validateUserLogin()

?

?

读书人网 >软件架构设计

热点推荐