話說客戶端與伺服器端驗證

2021-08-25 18:55:34 字數 1732 閱讀 2487

今天無意當中看了一位同事寫的關於登陸頁面的驗證,由此引發了我對客戶端與服務端驗證的一點想法,只是個人一點粗略的見解:

一、客戶端驗證:對天客戶端的驗證一般都是通過js來做的,像下面的這樣一段**

/**

* 填寫使用者基本資訊

*/$(document).ready(function() , "使用者名稱由中文、英文、數字組成!");

// 密碼規則

jquery.validator.addmethod("userpwrules", function(value, element) , "密碼只能由數字和字母組成!");

// 校驗碼長度規則

jquery.validator.addmethod("checkcodelength", function(value, element,param)

}return this.optional(element)||(length == 4);

}, "校驗碼長度為4個字元!");

var validator = $("#userinfoform").validate(

},url : "loginaction!isuserid",

type : "post"}},

userpw : ,

checkcode :

},url : "loginaction!ischeckcode",

type : "post"}}

},messages : ,

userpw : ,

checkcode :

},errorplacement : function(error, element) ,

success : function(label) ,

submithandler : function(form)

});});

在對使用者錄入的資訊都只在客戶端進行驗證,事實表明這個是很不安全的。一般來說,客戶端驗證不外乎就是在表單提交前使用vbs或js等對資料進行過濾,這 對於大部分的使用者來說是可行的。一旦使用者設定瀏覽器禁止執行指令碼**,則所有客戶端的驗證都會失效。因此,強烈建議在編寫網頁時在客戶端和伺服器端都要進行資料驗證。

二、服務端驗證

public void validateuserlogin() else

if(!pattern.compile("^[\u4e00-\u9fa5a-za-z0-9]+$").matcher(this.userid.trim()).matches())

} if(this.userpw==null || "".equals(this.userpw.trim()))else

if(!pattern.compile("^[a-za-z0-9]+$").matcher(this.userpw.trim()).matches())

} if(this.checkcode==null || "".equals(this.checkcode.trim()))else

if(!pattern.compile("^[a-za-z0-9]+$").matcher(this.checkcode.trim()).matches())

} }

這是乙個通過struts2框架來做的乙個驗證方法,如果說在客戶端的js驗證失效或者是被禁掉之後,這個仍然可以起到乙個驗證的作用。注意:通過這種方法來做的時候要注意,如果要在進入userlogin這個方法之前做驗證,哪麼這個驗證方法的寫法就是:validateuserlogin()

伺服器端驗證TextBox 以及客戶端驗證控制項

onclick是button的伺服器端事件 onclientclick是button的客戶端事件 一般我們用 onclientclick驗證我們的提交資料,但是這個一定要返回ture或者false,即一定要加上return,否則onclick失效。當返回false時onclick伺服器端事件才被中止...

客戶端與伺服器端通訊

關係圖 傳送 邏輯管理器 處理邏輯傳送指令 指令解析管理器 根據協議xml解析指令成二進位制資料 把二進位制資料傳給伺服器 接收 伺服器傳送二進位制資料到客戶端 指令解析管理器 根據協議xml解析二進位制資料 根據解析資料對映到邏輯類來處理 2 1 3 20 2,2 21 1,1,2 指令名和指令名...

客戶端跳轉與伺服器端跳轉

客戶端跳轉時用httpservletresopse物件的sendredirect函式實現,伺服器端跳轉是使用requestdispather物件的forward方法實現的。這兩者之間的區別主要體現在三個方面 1.使用伺服器端跳轉時,客戶瀏覽器的位址列並不會顯示目標位址的url,而是用客戶端跳轉時,位...