一種輸入數據校驗的方法、裝置及系統的制作方法
【專利摘要】本發明公開了一種輸入數據校驗的方法、裝置及系統,用于提高校驗代碼生成的效率,該方法包括:保存預先設置的校驗配置文件,校驗配置文件包括校驗規則,校驗規則包括規則名稱以及規則值;讀取校驗配置文件,根據校驗配置文件自動生成服務器校驗代碼以及客戶端校驗代碼;將客戶端校驗代碼發送給客戶端,以使客戶端在接收到第一輸入數據時,利用客戶端校驗代碼對第一輸入數據進行校驗;接收客戶端輸入的第二輸入數據,利用服務器校驗代碼對第二輸入數據進行校驗,當第二輸入數據未通過校驗,則將當前第二輸入數據返回給客戶端。
【專利說明】一種輸入數據校驗的方法、裝置及系統
【技術領域】
[0001]本發明涉及互聯網【技術領域】,具體涉及一種輸入數據校驗的方法、裝置及系統。
【背景技術】
[0002]輸入數據是指用戶在動態的web頁面上填寫的相關數據,這些數據一般需要滿足校驗規則,例如校驗規則為密碼至少由6位數字、字母或符號組成等等。校驗規則可以添加到任何一個用戶輸入的數據之上,使該輸入數據滿足這種校驗規則。
[0003]在現有技術中,對于輸入數據的校驗,可以采用客戶端和服務器端雙重校驗的方式,用戶在客戶端輸入數據,若表單輸入數據不符合校驗規則,客戶端驗證可以快速將響應信息返回給用戶;同時,為了防止攔截并篡改通過了客戶端校驗以后的輸入數據,造成安全隱患,服務器端也需要對通過了客戶端校驗的輸入數據再次進行服務器端校驗,保證對輸入數據校驗的準確性。
[0004]但是,由于客戶端和服務器端所使用的校驗規則應該保證相同,又由于客戶端和服務器端需要由不同的語言編寫實現校驗規則的代碼(即校驗代碼),這樣,如果需要修改校驗規則時,則需要同步修改客戶端和服務器端校驗代碼,以確保客戶端和服務器端的校驗規則保持一致。人工分別編寫修改客戶端和服務器的校驗代碼,效率較低,且容易出現修改不一致的情況,從而直接影響輸入數據校驗功能的使用。
【發明內容】
[0005]有鑒于此,本發明提供一種輸入數據校驗的方法、裝置及系統,以解決現有技術中分別修改客戶端和服務器端校驗代碼效率較低的技術問題。
[0006]為解決上述問題,本發明提供的技術方案如下:
[0007]一種輸入數據校驗的方法,所述方法包括:
[0008]保存預先設置的校驗配置文件,所述校驗配置文件包括校驗規則,所述校驗規則包括規則名稱以及規則值;
[0009]讀取所述校驗配置文件,根據所述校驗配置文件自動生成服務器校驗代碼以及客戶端校驗代碼;
[0010]將所述客戶端校驗代碼發送給客戶端,以使所述客戶端在接收到第一輸入數據時,利用所述客戶端校驗代碼對所述第一輸入數據進行校驗;
[0011]接收客戶端輸入的第二輸入數據,利用所述服務器校驗代碼對所述第二輸入數據進行校驗,當所述第二輸入數據未通過校驗,則將當前所述第二輸入數據返回給所述客戶端。
[0012]相應的,所述讀取所述校驗配置文件,根據所述校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼,包括:
[0013]讀取所述校驗配置文件,通過服務器語言根據校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼。
[0014]相應的,讀取所述校驗配置文件,通過服務器語言根據校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼,包括:
[0015]讀取所述校驗配置文件中的規則名稱獲取待校驗的頁面元素值,讀取所述校驗配置文件中的規則值獲得所述頁面元素值對應的規則值;
[0016]通過服務器語言自動生成判斷所述頁面元素值是否符合所述規則值的客戶端校驗代碼以及服務器校驗代碼。
[0017]相應的,接收第二輸入數據,利用所述服務器校驗代碼對所述第二輸入數據進行校驗,當所述第二輸入數據未通過校驗,則將當前所述第二輸入數據返回給所述客戶端,包括:
[0018]接收所述客戶端通過提交表單中嵌入的框架控件輸入的第二輸入數據;
[0019]利用所述服務器校驗代碼對所述第二輸入數據進行校驗;
[0020]當所述第二輸入數據未通過校驗,則將當前所述第二輸入數據返回給所述客戶端提交表單中嵌入的框架控件。
[0021]一種輸入數據校驗的裝置,所述裝置包括:
[0022]保存單元,用于保存預先設置的校驗配置文件,所述校驗配置文件包括校驗規則,所述校驗規則包括規則名稱以及規則值;
[0023]生成單元,用于讀取所述校驗配置文件,根據所述校驗配置文件自動生成服務器校驗代碼以及客戶端校驗代碼;
[0024]發送單元,用于將所述客戶端校驗代碼發送給客戶端,以使所述客戶端在接收到第一輸入數據時,利用所述客戶端校驗代碼對所述第一輸入數據進行校驗;
[0025]校驗單元,用于接收客戶端輸入的第二輸入數據,利用所述服務器校驗代碼對所述第二輸入數據進行校驗,當所述第二輸入數據未通過校驗,則將當前所述第二輸入數據返回給所述客戶端。
[0026]相應的,所述生成單元具體用于:
[0027]讀取所述校驗配置文件,通過服務器語言根據校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼。
[0028]相應的,所述生成單元包括:
[0029]讀取子單元,用于讀取所述校驗配置文件中的規則名稱獲取待校驗的頁面元素值,讀取所述校驗配置文件中的規則值獲得所述頁面元素值對應的規則值;
[0030]生成子單元,用于通過服務器語言自動生成判斷所述頁面元素值是否符合所述規則值的客戶端校驗代碼以及服務器校驗代碼。
[0031]相應的,所述校驗單元包括:
[0032]接收子單元,用于接收所述客戶端通過提交表單中嵌入的框架控件輸入的第二輸入數據;
[0033]校驗子單元,用于利用所述服務器校驗代碼對所述第二輸入數據進行校驗;
[0034]結果返回子單元,用于當所述第二輸入數據未通過校驗,則將當前所述第二輸入數據返回給所述客戶端提交表單中嵌入的框架控件。
[0035]一種輸入數據校驗的系統,所述系統包括:
[0036]服務器以及客戶端;
[0037]所述服務器是上述的輸入數據校驗的裝置;
[0038]所述客戶端用于接收客戶端校驗代碼,在接收到第一輸入數據時,利用所述客戶端校驗代碼對所述第一輸入數據進行校驗;向所述服務器發送第二輸入數據,所述第二輸入數據是通過校驗的所述第一輸入數據;接收所述服務器返回的未通過校驗的第二輸入數據。
[0039]相應的,所述客戶端具體用于:
[0040]接收客戶端校驗代碼,在接收到第一輸入數據時,利用所述客戶端校驗代碼對所述第一輸入數據進行校驗;
[0041]通過提交表單中嵌入的框架控件向所述服務器發送第二輸入數據,所述第二輸入數據是通過校驗的所述第一輸入數據;
[0042]利用所述提交表單中嵌入的框架控件接收所述服務器返回的未通過校驗的第二輸入數據。
[0043]由此可見,本發明實施例具有如下有益效果:
[0044]本發明實施例通過使用統一的校驗配置文件,并根據校驗配置文件自動生成用于客戶端的校驗代碼以及用于服務器的校驗代碼,如果修改了校驗規則,只需要維護校驗配置文件即可同步修改服務器校驗代碼以及客戶端校驗代碼,省去了人工編寫修改服務器校驗代碼以及客戶端校驗代碼的步驟,從而提高了校驗代碼生成、修改的效率,也可以避免服務器以及客戶端校驗規則不一致的問題。
【專利附圖】
【附圖說明】
[0045]圖1為現有技術輸入數據校驗的過程示意圖;
[0046]圖2為本發明實施例中提供的輸入數據校驗的方法實施例的流程圖;
[0047]圖3為本發明實施例中提供的輸入數據校驗的方法實施例的示意圖;
[0048]圖4為本發明實施例中提供的輸入數據校驗的裝置實施例的示意圖;
[0049]圖5為本發明實施例中提供的輸入數據校驗的系統實施例的示意圖。
【具體實施方式】
[0050]為使本發明的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖和【具體實施方式】對本發明實施例作進一步詳細的說明。
[0051]可以交互的頁面一般都有輸入表單,只要有可能,就應該對用戶輸入的數據進行校驗,以避免把處理時間浪費在一些無效的輸入信息上。若有不符合校驗規則的輸入數據由表單輸入,應及時返回并給出相應的提示信息。
[0052]用戶通過瀏覽器打開某個頁面,并輸入相應的數據以后,停留在客戶端瀏覽器上的校驗代碼(通常由JavaScript語言實現)會按照約定好的校驗規則來檢查用戶輸入的數據是否合法。這種通過客戶端瀏覽器上的校驗代碼檢查用戶輸入數據是否合法的方式稱為客戶端校驗。
[0053]用戶通過瀏覽器打開某個頁面,并輸入相應的數據以后,將該數據提交到服務器,服務器上的校驗代碼(可以由JAVA/PHP/C#等語言實現)會按照約定好的校驗規則來檢查用戶輸入的數據是否合法。這種通過服務器上的校驗代碼檢查用戶輸入數據是否合法的方法稱為服務器校驗。
[0054]如果攔截通過了客戶端校驗以后的輸入數據,并將該輸入數據進行篡改(改成不符合校驗規則的輸入數據)后再提交到服務器,那么客戶端校驗將會被繞過,形成無效的攔截,即僅使用客戶端校驗存在著很大的安全隱患。
[0055]而服務器校驗的方式沒有了客戶端校驗,所有的數據都被直接提交到服務器,憑空增加了一部分不必要的網絡流量,也增加了一部分不必要的服務器的負荷,即需要額外對能夠通過客戶端校驗進行攔截的數據進行校驗。
[0056]因此,參見圖1所示,在現有技術中一般采用客戶端和服務器端雙重校驗的方式,用戶在客戶端輸入數據,客戶端采用校驗規則I進行數據校驗,當校驗未通過需要返回給提交表單,對通過客戶端校驗的輸入服務器進行服務器校驗,如果通過校驗進行后續處理,如果未通過校驗需要將輸入數據返回給客戶端提交表單。
[0057]經研究發現,現有技術至少存在以下問題:
[0058]第一,如圖1所示,校驗規則I和校驗規則2是需要保持一致的,但是客戶端和服務器中運行不同的語言編寫的代碼,那么客戶端和服務器的校驗代碼就需要嚴格按照校驗規則I和校驗規則2編寫,不能出現代碼功能與實際的校驗規則不一致的情況。后續如果需要修改校驗規則的時候,需同步修改實現校驗規則I和校驗規則2的校驗代碼(校驗規則I對應于客戶端校驗代碼,校驗規則2對應于服務器校驗代碼),才可以確保客戶端校驗規則和服務器校驗規則保持一致,但是同步修改校驗代碼就有可能出現修改操作遺漏了客戶端校驗代碼修改或者遺漏了服務器校驗代碼修改,或者修改以后,客戶端和服務器校驗代碼生效的校驗規則不一致,這些情況都是直接影響系統功能穩定性。假如程序版本一中對密碼的校驗規則是必須是6位字母和數字組成,那么此時服務器和客戶端校驗都需要將上述校驗規則寫入到校驗代碼中;如果程序版本二中需要對上述校驗規則進行修改,那么在此種方式下需要對客戶端和服務器兩部分的校驗代碼進行同樣的修改操作(如圖1中需要對實現校驗規則I和實現校驗規則2的校驗規則進行同樣的修改操作),這樣易出現客戶端和服務器校驗規則不一致的情況,或者只是修改了客戶端校驗代碼或服務器校驗代碼,從而直接影響系統功能的使用。
[0059]第二,如果服務器校驗結果為非法的時候,需要將用戶輸入的數據傳回到用戶提交數據的頁面,并重新寫入頁面反顯出來,這需要客戶端將服務器返回的數據逐個字段回填到頁面上相應的位置,增加了實現難度,而且當頁面元素發生變化的時候,服務端返回數據重寫到頁面的過程也需要相應的修改,過程復雜,不利于后期的維護。
[0060]為此,本發明實施例提出一種輸入數據校驗的方法、裝置及系統,以解決現有技術存在的上述問題。
[0061]本發明實施例將從輸入數據校驗裝置的角度進行描述,該輸入數據校驗的裝置具體可以集成在服務器中。
[0062]參見圖2所示,本發明實施例中提供的輸入數據校驗的方法實施例,可以包括以下步驟:
[0063]步驟201:保存預先設置的校驗配置文件,校驗配置文件包括校驗規則,校驗規則包括規則名稱以及規則值。
[0064]校驗規則可以理解為輸入數據所需要滿足的條件,例如某個校驗規則為輸入數據至少是6位數字和/或字母的組合。校驗配置文件中可以包括對各類數據輸入的校驗規貝U,規則值可以由正則表達式定義,例如,規則名稱為tel印hone,規則值為0\d{2}-\d{8},代表輸入電話號碼的校驗規則。
[0065]通過修改校驗配置文件可以定義各類輸入數據的校驗規則,校驗配置文件可以為json格式或者XML (Extensible Markup Language,可擴展標記語言)格式,也可以存放在數據庫中的。本實施例優選使用json格式存放校驗配置文件,因為json格式的數據目前在各種語言中都有較好的解析,同時相對于XML或者數據庫存放的方式也更加輕量化。
[0066]步驟202:讀取校驗配置文件,根據校驗配置文件自動生成服務器校驗代碼以及客戶端校驗代碼。
[0067]在本發明的一些實施例中,讀取校驗配置文件,根據校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼的具體實現可以包括:
[0068]讀取校驗配置文件,通過服務器語言根據校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼。
[0069]具體的,可以讀取校驗配置文件中的規則名稱獲取待校驗的頁面元素值,讀取校驗配置文件中的規則值獲得頁面元素值對應的規則值;通過服務器語言自動生成判斷頁面元素值是否符合規則值的客戶端校驗代碼以及服務器校驗代碼。
[0070]步驟203:將客戶端校驗代碼發送給客戶端,以使客戶端在接收到第一輸入數據時,利用客戶端校驗代碼對第一輸入數據進行校驗。
[0071]客戶端在用戶利用提交表單輸入數據(即第一輸入數據)時,可以利用客戶端校驗代碼對第一輸入數據進行校驗,通過了客戶端校驗的數據可以輸入給服務器端,輸入到服務器的數據可以為第二輸入數據。
[0072]步驟204:接收客戶端輸入的第二輸入數據,利用服務器校驗代碼對第二輸入數據進行校驗,當第二輸入數據未通過校驗,則將當前第二輸入數據返回給客戶端。
[0073]本發明實施例通過分析上述現有技術的第一點技術問題,可以得到產生該技術問題的主要原因是由于客戶端校驗代碼和服務器校驗代碼為兩個不同的程序語言寫成的版本,所以后期如果要修改的話需要維護兩份不同的校驗代碼,因此本發明實施例的核心之一是通過統一客戶端校驗代碼和服務器校驗代碼,從而解決如果修改校驗規則需要同步修改客戶端和服務器端校驗代碼,效率較低的技術問題。這里的統一不是指客戶端和服務器使用相同的代碼,而是考慮從另外一個方面來實現,參見圖3所示:通過服務器語言,結合校驗配置文件自動生成客戶端校驗代碼,將客戶端校驗代碼發送給客戶端。需要注意的是,本發明實施例是通過程序自動生成客戶端校驗代碼,區別于現有技術中通過手工編寫校驗代碼;同時通過服務器語言,結合同一份校驗配置文件自動生成服務器校驗代碼,同樣本發明實施例是通過程序自動生成服務器校驗代碼,區別于現有技術中通過手工編寫校驗代碼。系統部署以后如果要修改校驗規則,則只需要修改一份校驗配置文件,即可實現客戶端校驗代碼與服務端校驗代碼的同步實現,提高效率,簡化代碼維護。
[0074]在實際應用中,假設客戶端使用javascript語言,服務器端使用php語言,統一校驗規則的校驗配置文件確定以后,比如通過json格式存放在txt文檔中,系統部署的時候,將該校驗配置文件存放在服務器上的某個磁盤位置上,每天日終的時候可以通過定時任務使用PHP代碼根據該校驗配置文件自動生成客戶端校驗代碼的文件(javascript文件)和服務端校驗代碼的文件(Php文件),并替換掉服務器上的相同文件名的文件(也即前一天日終的時候生成的文件),這樣只要O保證生成校驗代碼文件的PHP程序代碼正確即可,如果以后需要新增校驗規則,只需要維護一個校驗配置文件,服務器和客戶端校驗代碼就能默認保持一致,省卻了人工編寫客戶端校驗代碼和服務器校驗代碼的麻煩以及由此可能導致兩端不一致的問題。
[0075]在本發明的一些實施例中,具體的,可以接收客戶端通過提交表單中嵌入的框架控件輸入的第二輸入數據;利用服務器校驗代碼對第二輸入數據進行校驗;當第二輸入數據未通過校驗,則將當前第二輸入數據返回給客戶端提交表單中嵌入的框架控件。
[0076]在傳統的頁面處理方式中,在提交頁面(也即用戶輸入數據的頁面)中可以設定提交表單的處理目的頁面,目的頁面在服務器端,進行服務器校驗,如果校驗為非法的時候,目的頁面將提交的數據原封不動的返回到提交頁面,提交頁面通過手工編寫代碼的方式重新解析這部分返回數據,并重新寫入到頁面上,以便客戶檢查校驗結果為非法的數據。
[0077]通過分析上述第二點技術問題,產生原因主要是在提交頁面中設定表單的處理目的頁面,會導致目的頁面處理完成以后需要重新返回提交頁面(也就刷新了一次提交頁面,那么原先提交頁面的數據就會丟失),對于此問題,本專利實施例中通過在提交頁面中嵌入iframe框架控件,并將其設置為不可見,將iframe的目的頁面設置為服務器地址,則目的頁面不在新頁面內執行,而是在該iframe內部執行。這樣,目的頁面的執行也就可視為在本提交頁面內,當目的頁面返回本提交頁面的時候,不用重新刷新本提交頁面,從而本提交頁面內的數據沒有丟失,也就不用重新根據目的頁面的返回數據通過手工寫代碼的方式把數據逐個重新寫入到提交頁面中。
[0078]以下以一個具體應用實例對本發明實施例中提供的輸入數據校驗的方法實施例進行進一步說明。
[0079]首先,定義并保存校驗配置文件,校驗配置文件中通過正則表達式定義了各類校驗規則。
[0080]舉例通過json格式存放的校驗配置文件如下,該文件可以保存為txt格式:
[0081]{
[0082][ “rulename”: ” telephone,,,” rulevalue”: ” 0\d {2}-\d {8} ” ],
[0083][ “rulename”: ” email”, ”rulevalue,,: ”
[0084](\w+ ([-+.] \w+) *@\w+ ([-.] \w+) *\.\w+ ([-.] \w+) * ;)*,,]
[0085]}
[0086]上述校驗配置文件分別定義了電話號的校驗規則,規則名稱為tel印hone,規則值為0\d{2}-\d{8},以及emial地址的校驗規則,規則名稱為email,規則值為(\w+ ([-+.] \w+) *i\w+ ([-.] \w+) *\.\w+ ([-.] \w+) * ;)*,,]。
[0087]服務器中運行生成校驗代碼的程序,生成校驗代碼的程序根據前一步驟中的校驗配置文件,生成相應的客戶端校驗代碼(例如javascript代碼)以及服務器校驗代碼(例如PHP代碼),具體生成過程為:以配置文件中規則名稱rulename的值來獲取具體的頁面元素,以配置文件中的規則值rulevalue的值(正則表達式)來判斷獲取的頁面元素內容是否滿足正則表達式。最終生成的客戶端校驗代碼javascript如下(以上述校驗配置文件為例):
[0088]$( ‘.telephone,).blur (funct1n O {
[0089]var result = this, value, match(/0\d{2}-\d{8}/);
[0090]if (result == null) return false ;
[0091]return true;});
[0092]$( ‘.email,).blur (funct1n () {
[0093]var result = this, value, match (/ (\w+ ([-+.] \w+) *i\w+ ([-.] \w+) *\.\w+ ([-.]\w+)* ;)*/);
[0094]if (result == null) return false ;
[0095]return true;});
[0096]上述校驗代碼規則名稱和規則值部分即為從校驗配置文件中讀取出來的信息,SP把校驗配置文件中的校驗規則,通過服務器的程序生成到客戶端校驗代碼(javascript代碼)中。該校驗代碼的作用是分別查找類class屬性為email的控件,并檢查其內容是否符合0\d{2}_\d{8}正則表達式的規范,查找class屬性為telephone的控件,并檢查其內容是否符合(\w+ ( [-+.] \w+) *i\w+ ( [-.]\w+)*\.\w+ ( [-.]\w+)* ;)* 正則表達式的規范。
[0097]自動生成的服務器校驗代碼也類似于客戶端校驗代碼,在此不再贅述。
[0098]在該過程中,只需編寫過一次生成校驗代碼的程序(用于生成服務器校驗代碼以及客戶端校驗代碼),如果有新的校驗規則需要添加,只需修改包括校驗規則的校驗配置文件,重新生成客戶端校驗代碼以及服務器校驗代碼即可,從而降低了程序維護的復雜度,保證程序的安全性。
[0099]另外,客戶端頁面(即與用戶交互的頁面,用于用戶輸入數據)還需要做三件關鍵的設置:
[0100]一、每一個需要校驗的輸入控件,比如需要輸入電話號碼的控件〈input〉,我們將該控件的屬性class的值設置為“telephone”,需要輸入郵件地址的控件〈input〉,我們將該控件的屬性class的值設置為“email”,其中telephone和email即為校驗配置文件中的規則名稱rulename的值。在這里,如果某一個控件需要校驗某一種規則,則校驗配置文件中需要寫入這種規則的正則表達式作為規則值rulevalue,然后設置該規則的規則名稱rulename,最后將客戶端輸入控件的class屬性設置為rulename即可。
[0101]二、在客戶端頁面中調用統一的客戶端校驗代碼,S卩服務器通過生成校驗代碼的程序生成客戶端校驗代碼(javascript代碼)。
[0102]三、在該客戶端頁面中嵌入iframe控件,并設置屬性為hiden。將用戶提交數據表單的目標target設置為該iframe。即可以避免返回數據時刷新網頁。
[0103]這樣,本發明實施例通過使用統一的校驗配置文件,并根據校驗配置文件自動生成用于客戶端的校驗代碼以及用于服務器的校驗代碼,如果修改了校驗規則,只需要維護校驗配置文件即可同步修改服務器校驗代碼以及客戶端校驗代碼,省去了人工編寫修改服務器校驗代碼以及客戶端校驗代碼的步驟,從而提高了校驗代碼生成、修改的效率,也可以避免服務器以及客戶端校驗規則不一致的問題。另外,通過客戶端提交表單中嵌入的框架控件,避免了在數據返回時刷新頁面,從而不再需要將數據回填到提交頁面,節省了維護成本。
[0104]相應的,參見圖4所示,本發明實施例中還提供一種輸入數據校驗的裝置實施例,可以包括:
[0105]保存單元401,用于保存預先設置的校驗配置文件,校驗配置文件包括校驗規則,校驗規則包括規則名稱以及規則值。
[0106]生成單元402,用于讀取校驗配置文件,根據校驗配置文件自動生成服務器校驗代碼以及客戶端校驗代碼。
[0107]發送單元403,用于將客戶端校驗代碼發送給客戶端,以使客戶端在接收到第一輸入數據時,利用客戶端校驗代碼對第一輸入數據進行校驗。
[0108]校驗單元404,用于接收客戶端輸入的第二輸入數據,利用服務器校驗代碼對第二輸入數據進行校驗,當第二輸入數據未通過校驗,則將當前第二輸入數據返回給客戶端。
[0109]在本發明的一些實施例中,生成單元可以具體用于:讀取校驗配置文件,通過服務器語言根據校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼。
[0110]在本發明的一些實施例中,生成單元可以包括:
[0111]讀取子單元,用于讀取校驗配置文件中的規則名稱獲取待校驗的頁面元素值,讀取校驗配置文件中的規則值獲得頁面元素值對應的規則值;
[0112]生成子單元,用于通過服務器語言自動生成判斷頁面元素值是否符合規則值的客戶端校驗代碼以及服務器校驗代碼。
[0113]在本發明的一些實施例中,校驗單元可以包括:
[0114]接收子單元,用于接收客戶端通過提交表單中嵌入的框架控件輸入的第二輸入數據。
[0115]校驗子單元,用于利用服務器校驗代碼對第二輸入數據進行校驗。
[0116]結果返回子單元,用于當第二輸入數據未通過校驗,則將當前第二輸入數據返回給客戶端提交表單中嵌入的框架控件。
[0117]這樣,本發明實施例通過使用統一的校驗配置文件,并根據校驗配置文件自動生成用于客戶端的校驗代碼以及用于服務器的校驗代碼,如果修改了校驗規則,只需要維護校驗配置文件即可同步修改服務器校驗代碼以及客戶端校驗代碼,省去了人工編寫修改服務器校驗代碼以及客戶端校驗代碼的步驟,從而提高了校驗代碼生成、修改的效率,也可以避免服務器以及客戶端校驗規則不一致的問題。另外,通過客戶端提交表單中嵌入的框架控件,避免了在數據返回時刷新頁面,從而不再需要將數據回填到提交頁面,節省了維護成本。
[0118]相應的,參見圖5所示,本發明實施例中還提供一種輸入數據校驗的系統實施例,可以包括:
[0119]服務器501以及客戶端502 ;
[0120]其中,服務器可以是上述實施例中的輸入數據校驗的裝置實施例;
[0121]客戶端可以用于接收客戶端校驗代碼,在接收到第一輸入數據時,利用客戶端校驗代碼對第一輸入數據進行校驗;向服務器發送第二輸入數據,第二輸入數據是通過校驗的第一輸入數據;接收服務器返回的未通過校驗的第二輸入數據。
[0122]在本發明的一些實施例中,客戶端可以具體用于:
[0123]接收客戶端校驗代碼,在接收到第一輸入數據時,利用客戶端校驗代碼對第一輸入數據進行校驗;通過提交表單中嵌入的框架控件向服務器發送第二輸入數據,第二輸入數據是通過校驗的第一輸入數據;利用提交表單中嵌入的框架控件接收服務器返回的未通過校驗的第二輸入數據。
[0124]這樣,本發明實施例通過使用統一的校驗配置文件,并根據校驗配置文件自動生成用于客戶端的校驗代碼以及用于服務器的校驗代碼,如果修改了校驗規則,只需要維護校驗配置文件即可同步修改服務器校驗代碼以及客戶端校驗代碼,省去了人工編寫修改服務器校驗代碼以及客戶端校驗代碼的步驟,從而提高了校驗代碼生成、修改的效率,也可以避免服務器以及客戶端校驗規則不一致的問題。另外,通過客戶端提交表單中嵌入的框架控件,避免了在數據返回時刷新頁面,從而不再需要將數據回填到提交頁面,節省了維護成本。
[0125]需要說明的是,本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的系統或裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
[0126]還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
[0127]結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(RAM)、內存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或【技術領域】內所公知的任意其它形式的存儲介質中。
[0128]對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或范圍的情況下,在其它實施例中實現。因此,本發明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
【權利要求】
1.一種輸入數據校驗的方法,其特征在于,所述方法包括: 保存預先設置的校驗配置文件,所述校驗配置文件包括校驗規則,所述校驗規則包括規則名稱以及規則值; 讀取所述校驗配置文件,根據所述校驗配置文件自動生成服務器校驗代碼以及客戶端校驗代碼; 將所述客戶端校驗代碼發送給客戶端,以使所述客戶端在接收到第一輸入數據時,利用所述客戶端校驗代碼對所述第一輸入數據進行校驗; 接收客戶端輸入的第二輸入數據,利用所述服務器校驗代碼對所述第二輸入數據進行校驗,當所述第二輸入數據未通過校驗,則將當前所述第二輸入數據返回給所述客戶端。
2.根據權利要求1所述的方法,其特征在于,所述讀取所述校驗配置文件,根據所述校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼,包括: 讀取所述校驗配置文件,通過服務器語言根據校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼。
3.根據權利要求2所述的方法,其特征在于,讀取所述校驗配置文件,通過服務器語言根據校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼,包括: 讀取所述校驗配置文件中的規則名稱獲取待校驗的頁面元素值,讀取所述校驗配置文件中的規則值獲得所述頁面元素值對應的規則值; 通過服務器語言自動生成判斷所述頁面元素值是否符合所述規則值的客戶端校驗代碼以及服務器校驗代碼。
4.根據權利要求1所述的方法,其特征在于,接收第二輸入數據,利用所述服務器校驗代碼對所述第二輸入數據進行校驗,當所述第二輸入數據未通過校驗,則將當前所述第二輸入數據返回給所述客戶端,包括: 接收所述客戶端通過提交表單中嵌入的框架控件輸入的第二輸入數據; 利用所述服務器校驗代碼對所述第二輸入數據進行校驗; 當所述第二輸入數據未通過校驗,則將當前所述第二輸入數據返回給所述客戶端提交表單中嵌入的框架控件。
5.一種輸入數據校驗的裝置,其特征在于,所述裝置包括: 保存單元,用于保存預先設置的校驗配置文件,所述校驗配置文件包括校驗規則,所述校驗規則包括規則名稱以及規則值; 生成單元,用于讀取所述校驗配置文件,根據所述校驗配置文件自動生成服務器校驗代碼以及客戶端校驗代碼; 發送單元,用于將所述客戶端校驗代碼發送給客戶端,以使所述客戶端在接收到第一輸入數據時,利用所述客戶端校驗代碼對所述第一輸入數據進行校驗; 校驗單元,用于接收客戶端輸入的第二輸入數據,利用所述服務器校驗代碼對所述第二輸入數據進行校驗,當所述第二輸入數據未通過校驗,則將當前所述第二輸入數據返回給所述客戶端。
6.根據權利要求5所述的裝置,其特征在于,所述生成單元具體用于: 讀取所述校驗配置文件,通過服務器語言根據校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼。
7.根據權利要求6所述的裝置,其特征在于,所述生成單元包括: 讀取子單元,用于讀取所述校驗配置文件中的規則名稱獲取待校驗的頁面元素值,讀取所述校驗配置文件中的規則值獲得所述頁面元素值對應的規則值; 生成子單元,用于通過服務器語言自動生成判斷所述頁面元素值是否符合所述規則值的客戶端校驗代碼以及服務器校驗代碼。
8.根據權利要求5所述的裝置,其特征在于,所述校驗單元包括: 接收子單元,用于接收所述客戶端通過提交表單中嵌入的框架控件輸入的第二輸入數據; 校驗子單元,用于利用所述服務器校驗代碼對所述第二輸入數據進行校驗; 結果返回子單元,用于當所述第二輸入數據未通過校驗,則將當前所述第二輸入數據返回給所述客戶端提交表單中嵌入的框架控件。
9.一種輸入數據校驗的系統,其特征在于,所述系統包括: 服務器以及客戶端; 所述服務器是權利要求5-8任一項所述的輸入數據校驗的裝置; 所述客戶端用于接收客戶端校驗代碼,在接收到第一輸入數據時,利用所述客戶端校驗代碼對所述第一輸入數據進行校驗;向所述服務器發送第二輸入數據,所述第二輸入數據是通過校驗的所述第一輸入數據;接收所述服務器返回的未通過校驗的第二輸入數據。
10.根據權利要求9所述的系統,其特征在于,所述客戶端具體用于: 接收客戶端校驗代碼,在接收到第一輸入數據時,利用所述客戶端校驗代碼對所述第一輸入數據進行校驗; 通過提交表單中嵌入的框架控件向所述服務器發送第二輸入數據,所述第二輸入數據是通過校驗的所述第一輸入數據; 利用所述提交表單中嵌入的框架控件接收所述服務器返回的未通過校驗的第二輸入數據。
【文檔編號】H04L29/06GK104270395SQ201410578530
【公開日】2015年1月7日 申請日期:2014年10月24日 優先權日:2014年10月24日
【發明者】章夢, 何明杰, 傅強, 張興強, 龐以新, 駱國生, 馬林, 朱伙, 趙欣, 龐云鵬 申請人:中國建設銀行股份有限公司