欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種輸入數(shù)據(jù)校驗的方法、裝置及系統(tǒng)的制作方法

文檔序號:7817685閱讀:363來源:國知局
一種輸入數(shù)據(jù)校驗的方法、裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種輸入數(shù)據(jù)校驗的方法、裝置及系統(tǒng),用于提高校驗代碼生成的效率,該方法包括:保存預先設置的校驗配置文件,校驗配置文件包括校驗規(guī)則,校驗規(guī)則包括規(guī)則名稱以及規(guī)則值;讀取校驗配置文件,根據(jù)校驗配置文件自動生成服務器校驗代碼以及客戶端校驗代碼;將客戶端校驗代碼發(fā)送給客戶端,以使客戶端在接收到第一輸入數(shù)據(jù)時,利用客戶端校驗代碼對第一輸入數(shù)據(jù)進行校驗;接收客戶端輸入的第二輸入數(shù)據(jù),利用服務器校驗代碼對第二輸入數(shù)據(jù)進行校驗,當?shù)诙斎霐?shù)據(jù)未通過校驗,則將當前第二輸入數(shù)據(jù)返回給客戶端。
【專利說明】一種輸入數(shù)據(jù)校驗的方法、裝置及系統(tǒng)

【技術領域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)【技術領域】,具體涉及一種輸入數(shù)據(jù)校驗的方法、裝置及系統(tǒng)。

【背景技術】
[0002]輸入數(shù)據(jù)是指用戶在動態(tài)的web頁面上填寫的相關數(shù)據(jù),這些數(shù)據(jù)一般需要滿足校驗規(guī)則,例如校驗規(guī)則為密碼至少由6位數(shù)字、字母或符號組成等等。校驗規(guī)則可以添加到任何一個用戶輸入的數(shù)據(jù)之上,使該輸入數(shù)據(jù)滿足這種校驗規(guī)則。
[0003]在現(xiàn)有技術中,對于輸入數(shù)據(jù)的校驗,可以采用客戶端和服務器端雙重校驗的方式,用戶在客戶端輸入數(shù)據(jù),若表單輸入數(shù)據(jù)不符合校驗規(guī)則,客戶端驗證可以快速將響應信息返回給用戶;同時,為了防止攔截并篡改通過了客戶端校驗以后的輸入數(shù)據(jù),造成安全隱患,服務器端也需要對通過了客戶端校驗的輸入數(shù)據(jù)再次進行服務器端校驗,保證對輸入數(shù)據(jù)校驗的準確性。
[0004]但是,由于客戶端和服務器端所使用的校驗規(guī)則應該保證相同,又由于客戶端和服務器端需要由不同的語言編寫實現(xiàn)校驗規(guī)則的代碼(即校驗代碼),這樣,如果需要修改校驗規(guī)則時,則需要同步修改客戶端和服務器端校驗代碼,以確保客戶端和服務器端的校驗規(guī)則保持一致。人工分別編寫修改客戶端和服務器的校驗代碼,效率較低,且容易出現(xiàn)修改不一致的情況,從而直接影響輸入數(shù)據(jù)校驗功能的使用。


【發(fā)明內(nèi)容】

[0005]有鑒于此,本發(fā)明提供一種輸入數(shù)據(jù)校驗的方法、裝置及系統(tǒng),以解決現(xiàn)有技術中分別修改客戶端和服務器端校驗代碼效率較低的技術問題。
[0006]為解決上述問題,本發(fā)明提供的技術方案如下:
[0007]一種輸入數(shù)據(jù)校驗的方法,所述方法包括:
[0008]保存預先設置的校驗配置文件,所述校驗配置文件包括校驗規(guī)則,所述校驗規(guī)則包括規(guī)則名稱以及規(guī)則值;
[0009]讀取所述校驗配置文件,根據(jù)所述校驗配置文件自動生成服務器校驗代碼以及客戶端校驗代碼;
[0010]將所述客戶端校驗代碼發(fā)送給客戶端,以使所述客戶端在接收到第一輸入數(shù)據(jù)時,利用所述客戶端校驗代碼對所述第一輸入數(shù)據(jù)進行校驗;
[0011]接收客戶端輸入的第二輸入數(shù)據(jù),利用所述服務器校驗代碼對所述第二輸入數(shù)據(jù)進行校驗,當所述第二輸入數(shù)據(jù)未通過校驗,則將當前所述第二輸入數(shù)據(jù)返回給所述客戶端。
[0012]相應的,所述讀取所述校驗配置文件,根據(jù)所述校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼,包括:
[0013]讀取所述校驗配置文件,通過服務器語言根據(jù)校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼。
[0014]相應的,讀取所述校驗配置文件,通過服務器語言根據(jù)校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼,包括:
[0015]讀取所述校驗配置文件中的規(guī)則名稱獲取待校驗的頁面元素值,讀取所述校驗配置文件中的規(guī)則值獲得所述頁面元素值對應的規(guī)則值;
[0016]通過服務器語言自動生成判斷所述頁面元素值是否符合所述規(guī)則值的客戶端校驗代碼以及服務器校驗代碼。
[0017]相應的,接收第二輸入數(shù)據(jù),利用所述服務器校驗代碼對所述第二輸入數(shù)據(jù)進行校驗,當所述第二輸入數(shù)據(jù)未通過校驗,則將當前所述第二輸入數(shù)據(jù)返回給所述客戶端,包括:
[0018]接收所述客戶端通過提交表單中嵌入的框架控件輸入的第二輸入數(shù)據(jù);
[0019]利用所述服務器校驗代碼對所述第二輸入數(shù)據(jù)進行校驗;
[0020]當所述第二輸入數(shù)據(jù)未通過校驗,則將當前所述第二輸入數(shù)據(jù)返回給所述客戶端提交表單中嵌入的框架控件。
[0021]一種輸入數(shù)據(jù)校驗的裝置,所述裝置包括:
[0022]保存單元,用于保存預先設置的校驗配置文件,所述校驗配置文件包括校驗規(guī)則,所述校驗規(guī)則包括規(guī)則名稱以及規(guī)則值;
[0023]生成單元,用于讀取所述校驗配置文件,根據(jù)所述校驗配置文件自動生成服務器校驗代碼以及客戶端校驗代碼;
[0024]發(fā)送單元,用于將所述客戶端校驗代碼發(fā)送給客戶端,以使所述客戶端在接收到第一輸入數(shù)據(jù)時,利用所述客戶端校驗代碼對所述第一輸入數(shù)據(jù)進行校驗;
[0025]校驗單元,用于接收客戶端輸入的第二輸入數(shù)據(jù),利用所述服務器校驗代碼對所述第二輸入數(shù)據(jù)進行校驗,當所述第二輸入數(shù)據(jù)未通過校驗,則將當前所述第二輸入數(shù)據(jù)返回給所述客戶端。
[0026]相應的,所述生成單元具體用于:
[0027]讀取所述校驗配置文件,通過服務器語言根據(jù)校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼。
[0028]相應的,所述生成單元包括:
[0029]讀取子單元,用于讀取所述校驗配置文件中的規(guī)則名稱獲取待校驗的頁面元素值,讀取所述校驗配置文件中的規(guī)則值獲得所述頁面元素值對應的規(guī)則值;
[0030]生成子單元,用于通過服務器語言自動生成判斷所述頁面元素值是否符合所述規(guī)則值的客戶端校驗代碼以及服務器校驗代碼。
[0031]相應的,所述校驗單元包括:
[0032]接收子單元,用于接收所述客戶端通過提交表單中嵌入的框架控件輸入的第二輸入數(shù)據(jù);
[0033]校驗子單元,用于利用所述服務器校驗代碼對所述第二輸入數(shù)據(jù)進行校驗;
[0034]結果返回子單元,用于當所述第二輸入數(shù)據(jù)未通過校驗,則將當前所述第二輸入數(shù)據(jù)返回給所述客戶端提交表單中嵌入的框架控件。
[0035]一種輸入數(shù)據(jù)校驗的系統(tǒng),所述系統(tǒng)包括:
[0036]服務器以及客戶端;
[0037]所述服務器是上述的輸入數(shù)據(jù)校驗的裝置;
[0038]所述客戶端用于接收客戶端校驗代碼,在接收到第一輸入數(shù)據(jù)時,利用所述客戶端校驗代碼對所述第一輸入數(shù)據(jù)進行校驗;向所述服務器發(fā)送第二輸入數(shù)據(jù),所述第二輸入數(shù)據(jù)是通過校驗的所述第一輸入數(shù)據(jù);接收所述服務器返回的未通過校驗的第二輸入數(shù)據(jù)。
[0039]相應的,所述客戶端具體用于:
[0040]接收客戶端校驗代碼,在接收到第一輸入數(shù)據(jù)時,利用所述客戶端校驗代碼對所述第一輸入數(shù)據(jù)進行校驗;
[0041]通過提交表單中嵌入的框架控件向所述服務器發(fā)送第二輸入數(shù)據(jù),所述第二輸入數(shù)據(jù)是通過校驗的所述第一輸入數(shù)據(jù);
[0042]利用所述提交表單中嵌入的框架控件接收所述服務器返回的未通過校驗的第二輸入數(shù)據(jù)。
[0043]由此可見,本發(fā)明實施例具有如下有益效果:
[0044]本發(fā)明實施例通過使用統(tǒng)一的校驗配置文件,并根據(jù)校驗配置文件自動生成用于客戶端的校驗代碼以及用于服務器的校驗代碼,如果修改了校驗規(guī)則,只需要維護校驗配置文件即可同步修改服務器校驗代碼以及客戶端校驗代碼,省去了人工編寫修改服務器校驗代碼以及客戶端校驗代碼的步驟,從而提高了校驗代碼生成、修改的效率,也可以避免服務器以及客戶端校驗規(guī)則不一致的問題。

【專利附圖】

【附圖說明】
[0045]圖1為現(xiàn)有技術輸入數(shù)據(jù)校驗的過程示意圖;
[0046]圖2為本發(fā)明實施例中提供的輸入數(shù)據(jù)校驗的方法實施例的流程圖;
[0047]圖3為本發(fā)明實施例中提供的輸入數(shù)據(jù)校驗的方法實施例的示意圖;
[0048]圖4為本發(fā)明實施例中提供的輸入數(shù)據(jù)校驗的裝置實施例的示意圖;
[0049]圖5為本發(fā)明實施例中提供的輸入數(shù)據(jù)校驗的系統(tǒng)實施例的示意圖。

【具體實施方式】
[0050]為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖和【具體實施方式】對本發(fā)明實施例作進一步詳細的說明。
[0051]可以交互的頁面一般都有輸入表單,只要有可能,就應該對用戶輸入的數(shù)據(jù)進行校驗,以避免把處理時間浪費在一些無效的輸入信息上。若有不符合校驗規(guī)則的輸入數(shù)據(jù)由表單輸入,應及時返回并給出相應的提示信息。
[0052]用戶通過瀏覽器打開某個頁面,并輸入相應的數(shù)據(jù)以后,停留在客戶端瀏覽器上的校驗代碼(通常由JavaScript語言實現(xiàn))會按照約定好的校驗規(guī)則來檢查用戶輸入的數(shù)據(jù)是否合法。這種通過客戶端瀏覽器上的校驗代碼檢查用戶輸入數(shù)據(jù)是否合法的方式稱為客戶端校驗。
[0053]用戶通過瀏覽器打開某個頁面,并輸入相應的數(shù)據(jù)以后,將該數(shù)據(jù)提交到服務器,服務器上的校驗代碼(可以由JAVA/PHP/C#等語言實現(xiàn))會按照約定好的校驗規(guī)則來檢查用戶輸入的數(shù)據(jù)是否合法。這種通過服務器上的校驗代碼檢查用戶輸入數(shù)據(jù)是否合法的方法稱為服務器校驗。
[0054]如果攔截通過了客戶端校驗以后的輸入數(shù)據(jù),并將該輸入數(shù)據(jù)進行篡改(改成不符合校驗規(guī)則的輸入數(shù)據(jù))后再提交到服務器,那么客戶端校驗將會被繞過,形成無效的攔截,即僅使用客戶端校驗存在著很大的安全隱患。
[0055]而服務器校驗的方式?jīng)]有了客戶端校驗,所有的數(shù)據(jù)都被直接提交到服務器,憑空增加了一部分不必要的網(wǎng)絡流量,也增加了一部分不必要的服務器的負荷,即需要額外對能夠通過客戶端校驗進行攔截的數(shù)據(jù)進行校驗。
[0056]因此,參見圖1所示,在現(xiàn)有技術中一般采用客戶端和服務器端雙重校驗的方式,用戶在客戶端輸入數(shù)據(jù),客戶端采用校驗規(guī)則I進行數(shù)據(jù)校驗,當校驗未通過需要返回給提交表單,對通過客戶端校驗的輸入服務器進行服務器校驗,如果通過校驗進行后續(xù)處理,如果未通過校驗需要將輸入數(shù)據(jù)返回給客戶端提交表單。
[0057]經(jīng)研究發(fā)現(xiàn),現(xiàn)有技術至少存在以下問題:
[0058]第一,如圖1所示,校驗規(guī)則I和校驗規(guī)則2是需要保持一致的,但是客戶端和服務器中運行不同的語言編寫的代碼,那么客戶端和服務器的校驗代碼就需要嚴格按照校驗規(guī)則I和校驗規(guī)則2編寫,不能出現(xiàn)代碼功能與實際的校驗規(guī)則不一致的情況。后續(xù)如果需要修改校驗規(guī)則的時候,需同步修改實現(xiàn)校驗規(guī)則I和校驗規(guī)則2的校驗代碼(校驗規(guī)則I對應于客戶端校驗代碼,校驗規(guī)則2對應于服務器校驗代碼),才可以確??蛻舳诵r炓?guī)則和服務器校驗規(guī)則保持一致,但是同步修改校驗代碼就有可能出現(xiàn)修改操作遺漏了客戶端校驗代碼修改或者遺漏了服務器校驗代碼修改,或者修改以后,客戶端和服務器校驗代碼生效的校驗規(guī)則不一致,這些情況都是直接影響系統(tǒng)功能穩(wěn)定性。假如程序版本一中對密碼的校驗規(guī)則是必須是6位字母和數(shù)字組成,那么此時服務器和客戶端校驗都需要將上述校驗規(guī)則寫入到校驗代碼中;如果程序版本二中需要對上述校驗規(guī)則進行修改,那么在此種方式下需要對客戶端和服務器兩部分的校驗代碼進行同樣的修改操作(如圖1中需要對實現(xiàn)校驗規(guī)則I和實現(xiàn)校驗規(guī)則2的校驗規(guī)則進行同樣的修改操作),這樣易出現(xiàn)客戶端和服務器校驗規(guī)則不一致的情況,或者只是修改了客戶端校驗代碼或服務器校驗代碼,從而直接影響系統(tǒng)功能的使用。
[0059]第二,如果服務器校驗結果為非法的時候,需要將用戶輸入的數(shù)據(jù)傳回到用戶提交數(shù)據(jù)的頁面,并重新寫入頁面反顯出來,這需要客戶端將服務器返回的數(shù)據(jù)逐個字段回填到頁面上相應的位置,增加了實現(xiàn)難度,而且當頁面元素發(fā)生變化的時候,服務端返回數(shù)據(jù)重寫到頁面的過程也需要相應的修改,過程復雜,不利于后期的維護。
[0060]為此,本發(fā)明實施例提出一種輸入數(shù)據(jù)校驗的方法、裝置及系統(tǒng),以解決現(xiàn)有技術存在的上述問題。
[0061]本發(fā)明實施例將從輸入數(shù)據(jù)校驗裝置的角度進行描述,該輸入數(shù)據(jù)校驗的裝置具體可以集成在服務器中。
[0062]參見圖2所示,本發(fā)明實施例中提供的輸入數(shù)據(jù)校驗的方法實施例,可以包括以下步驟:
[0063]步驟201:保存預先設置的校驗配置文件,校驗配置文件包括校驗規(guī)則,校驗規(guī)則包括規(guī)則名稱以及規(guī)則值。
[0064]校驗規(guī)則可以理解為輸入數(shù)據(jù)所需要滿足的條件,例如某個校驗規(guī)則為輸入數(shù)據(jù)至少是6位數(shù)字和/或字母的組合。校驗配置文件中可以包括對各類數(shù)據(jù)輸入的校驗規(guī)貝U,規(guī)則值可以由正則表達式定義,例如,規(guī)則名稱為tel印hone,規(guī)則值為0\d{2}-\d{8},代表輸入電話號碼的校驗規(guī)則。
[0065]通過修改校驗配置文件可以定義各類輸入數(shù)據(jù)的校驗規(guī)則,校驗配置文件可以為json格式或者XML (Extensible Markup Language,可擴展標記語言)格式,也可以存放在數(shù)據(jù)庫中的。本實施例優(yōu)選使用json格式存放校驗配置文件,因為json格式的數(shù)據(jù)目前在各種語言中都有較好的解析,同時相對于XML或者數(shù)據(jù)庫存放的方式也更加輕量化。
[0066]步驟202:讀取校驗配置文件,根據(jù)校驗配置文件自動生成服務器校驗代碼以及客戶端校驗代碼。
[0067]在本發(fā)明的一些實施例中,讀取校驗配置文件,根據(jù)校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼的具體實現(xiàn)可以包括:
[0068]讀取校驗配置文件,通過服務器語言根據(jù)校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼。
[0069]具體的,可以讀取校驗配置文件中的規(guī)則名稱獲取待校驗的頁面元素值,讀取校驗配置文件中的規(guī)則值獲得頁面元素值對應的規(guī)則值;通過服務器語言自動生成判斷頁面元素值是否符合規(guī)則值的客戶端校驗代碼以及服務器校驗代碼。
[0070]步驟203:將客戶端校驗代碼發(fā)送給客戶端,以使客戶端在接收到第一輸入數(shù)據(jù)時,利用客戶端校驗代碼對第一輸入數(shù)據(jù)進行校驗。
[0071]客戶端在用戶利用提交表單輸入數(shù)據(jù)(即第一輸入數(shù)據(jù))時,可以利用客戶端校驗代碼對第一輸入數(shù)據(jù)進行校驗,通過了客戶端校驗的數(shù)據(jù)可以輸入給服務器端,輸入到服務器的數(shù)據(jù)可以為第二輸入數(shù)據(jù)。
[0072]步驟204:接收客戶端輸入的第二輸入數(shù)據(jù),利用服務器校驗代碼對第二輸入數(shù)據(jù)進行校驗,當?shù)诙斎霐?shù)據(jù)未通過校驗,則將當前第二輸入數(shù)據(jù)返回給客戶端。
[0073]本發(fā)明實施例通過分析上述現(xiàn)有技術的第一點技術問題,可以得到產(chǎn)生該技術問題的主要原因是由于客戶端校驗代碼和服務器校驗代碼為兩個不同的程序語言寫成的版本,所以后期如果要修改的話需要維護兩份不同的校驗代碼,因此本發(fā)明實施例的核心之一是通過統(tǒng)一客戶端校驗代碼和服務器校驗代碼,從而解決如果修改校驗規(guī)則需要同步修改客戶端和服務器端校驗代碼,效率較低的技術問題。這里的統(tǒng)一不是指客戶端和服務器使用相同的代碼,而是考慮從另外一個方面來實現(xiàn),參見圖3所示:通過服務器語言,結合校驗配置文件自動生成客戶端校驗代碼,將客戶端校驗代碼發(fā)送給客戶端。需要注意的是,本發(fā)明實施例是通過程序自動生成客戶端校驗代碼,區(qū)別于現(xiàn)有技術中通過手工編寫校驗代碼;同時通過服務器語言,結合同一份校驗配置文件自動生成服務器校驗代碼,同樣本發(fā)明實施例是通過程序自動生成服務器校驗代碼,區(qū)別于現(xiàn)有技術中通過手工編寫校驗代碼。系統(tǒng)部署以后如果要修改校驗規(guī)則,則只需要修改一份校驗配置文件,即可實現(xiàn)客戶端校驗代碼與服務端校驗代碼的同步實現(xiàn),提高效率,簡化代碼維護。
[0074]在實際應用中,假設客戶端使用javascript語言,服務器端使用php語言,統(tǒng)一校驗規(guī)則的校驗配置文件確定以后,比如通過json格式存放在txt文檔中,系統(tǒng)部署的時候,將該校驗配置文件存放在服務器上的某個磁盤位置上,每天日終的時候可以通過定時任務使用PHP代碼根據(jù)該校驗配置文件自動生成客戶端校驗代碼的文件(javascript文件)和服務端校驗代碼的文件(Php文件),并替換掉服務器上的相同文件名的文件(也即前一天日終的時候生成的文件),這樣只要O保證生成校驗代碼文件的PHP程序代碼正確即可,如果以后需要新增校驗規(guī)則,只需要維護一個校驗配置文件,服務器和客戶端校驗代碼就能默認保持一致,省卻了人工編寫客戶端校驗代碼和服務器校驗代碼的麻煩以及由此可能導致兩端不一致的問題。
[0075]在本發(fā)明的一些實施例中,具體的,可以接收客戶端通過提交表單中嵌入的框架控件輸入的第二輸入數(shù)據(jù);利用服務器校驗代碼對第二輸入數(shù)據(jù)進行校驗;當?shù)诙斎霐?shù)據(jù)未通過校驗,則將當前第二輸入數(shù)據(jù)返回給客戶端提交表單中嵌入的框架控件。
[0076]在傳統(tǒng)的頁面處理方式中,在提交頁面(也即用戶輸入數(shù)據(jù)的頁面)中可以設定提交表單的處理目的頁面,目的頁面在服務器端,進行服務器校驗,如果校驗為非法的時候,目的頁面將提交的數(shù)據(jù)原封不動的返回到提交頁面,提交頁面通過手工編寫代碼的方式重新解析這部分返回數(shù)據(jù),并重新寫入到頁面上,以便客戶檢查校驗結果為非法的數(shù)據(jù)。
[0077]通過分析上述第二點技術問題,產(chǎn)生原因主要是在提交頁面中設定表單的處理目的頁面,會導致目的頁面處理完成以后需要重新返回提交頁面(也就刷新了一次提交頁面,那么原先提交頁面的數(shù)據(jù)就會丟失),對于此問題,本專利實施例中通過在提交頁面中嵌入iframe框架控件,并將其設置為不可見,將iframe的目的頁面設置為服務器地址,則目的頁面不在新頁面內(nèi)執(zhí)行,而是在該iframe內(nèi)部執(zhí)行。這樣,目的頁面的執(zhí)行也就可視為在本提交頁面內(nèi),當目的頁面返回本提交頁面的時候,不用重新刷新本提交頁面,從而本提交頁面內(nèi)的數(shù)據(jù)沒有丟失,也就不用重新根據(jù)目的頁面的返回數(shù)據(jù)通過手工寫代碼的方式把數(shù)據(jù)逐個重新寫入到提交頁面中。
[0078]以下以一個具體應用實例對本發(fā)明實施例中提供的輸入數(shù)據(jù)校驗的方法實施例進行進一步說明。
[0079]首先,定義并保存校驗配置文件,校驗配置文件中通過正則表達式定義了各類校驗規(guī)則。
[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]上述校驗配置文件分別定義了電話號的校驗規(guī)則,規(guī)則名稱為tel印hone,規(guī)則值為0\d{2}-\d{8},以及emial地址的校驗規(guī)則,規(guī)則名稱為email,規(guī)則值為(\w+ ([-+.] \w+) *i\w+ ([-.] \w+) *\.\w+ ([-.] \w+) * ;)*,,]。
[0087]服務器中運行生成校驗代碼的程序,生成校驗代碼的程序根據(jù)前一步驟中的校驗配置文件,生成相應的客戶端校驗代碼(例如javascript代碼)以及服務器校驗代碼(例如PHP代碼),具體生成過程為:以配置文件中規(guī)則名稱rulename的值來獲取具體的頁面元素,以配置文件中的規(guī)則值rulevalue的值(正則表達式)來判斷獲取的頁面元素內(nèi)容是否滿足正則表達式。最終生成的客戶端校驗代碼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]上述校驗代碼規(guī)則名稱和規(guī)則值部分即為從校驗配置文件中讀取出來的信息,SP把校驗配置文件中的校驗規(guī)則,通過服務器的程序生成到客戶端校驗代碼(javascript代碼)中。該校驗代碼的作用是分別查找類class屬性為email的控件,并檢查其內(nèi)容是否符合0\d{2}_\d{8}正則表達式的規(guī)范,查找class屬性為telephone的控件,并檢查其內(nèi)容是否符合(\w+ ( [-+.] \w+) *i\w+ ( [-.]\w+)*\.\w+ ( [-.]\w+)* ;)* 正則表達式的規(guī)范。
[0097]自動生成的服務器校驗代碼也類似于客戶端校驗代碼,在此不再贅述。
[0098]在該過程中,只需編寫過一次生成校驗代碼的程序(用于生成服務器校驗代碼以及客戶端校驗代碼),如果有新的校驗規(guī)則需要添加,只需修改包括校驗規(guī)則的校驗配置文件,重新生成客戶端校驗代碼以及服務器校驗代碼即可,從而降低了程序維護的復雜度,保證程序的安全性。
[0099]另外,客戶端頁面(即與用戶交互的頁面,用于用戶輸入數(shù)據(jù))還需要做三件關鍵的設置:
[0100]一、每一個需要校驗的輸入控件,比如需要輸入電話號碼的控件〈input〉,我們將該控件的屬性class的值設置為“telephone”,需要輸入郵件地址的控件〈input〉,我們將該控件的屬性class的值設置為“email”,其中telephone和email即為校驗配置文件中的規(guī)則名稱rulename的值。在這里,如果某一個控件需要校驗某一種規(guī)則,則校驗配置文件中需要寫入這種規(guī)則的正則表達式作為規(guī)則值rulevalue,然后設置該規(guī)則的規(guī)則名稱rulename,最后將客戶端輸入控件的class屬性設置為rulename即可。
[0101]二、在客戶端頁面中調(diào)用統(tǒng)一的客戶端校驗代碼,S卩服務器通過生成校驗代碼的程序生成客戶端校驗代碼(javascript代碼)。
[0102]三、在該客戶端頁面中嵌入iframe控件,并設置屬性為hiden。將用戶提交數(shù)據(jù)表單的目標target設置為該iframe。即可以避免返回數(shù)據(jù)時刷新網(wǎng)頁。
[0103]這樣,本發(fā)明實施例通過使用統(tǒng)一的校驗配置文件,并根據(jù)校驗配置文件自動生成用于客戶端的校驗代碼以及用于服務器的校驗代碼,如果修改了校驗規(guī)則,只需要維護校驗配置文件即可同步修改服務器校驗代碼以及客戶端校驗代碼,省去了人工編寫修改服務器校驗代碼以及客戶端校驗代碼的步驟,從而提高了校驗代碼生成、修改的效率,也可以避免服務器以及客戶端校驗規(guī)則不一致的問題。另外,通過客戶端提交表單中嵌入的框架控件,避免了在數(shù)據(jù)返回時刷新頁面,從而不再需要將數(shù)據(jù)回填到提交頁面,節(jié)省了維護成本。
[0104]相應的,參見圖4所示,本發(fā)明實施例中還提供一種輸入數(shù)據(jù)校驗的裝置實施例,可以包括:
[0105]保存單元401,用于保存預先設置的校驗配置文件,校驗配置文件包括校驗規(guī)則,校驗規(guī)則包括規(guī)則名稱以及規(guī)則值。
[0106]生成單元402,用于讀取校驗配置文件,根據(jù)校驗配置文件自動生成服務器校驗代碼以及客戶端校驗代碼。
[0107]發(fā)送單元403,用于將客戶端校驗代碼發(fā)送給客戶端,以使客戶端在接收到第一輸入數(shù)據(jù)時,利用客戶端校驗代碼對第一輸入數(shù)據(jù)進行校驗。
[0108]校驗單元404,用于接收客戶端輸入的第二輸入數(shù)據(jù),利用服務器校驗代碼對第二輸入數(shù)據(jù)進行校驗,當?shù)诙斎霐?shù)據(jù)未通過校驗,則將當前第二輸入數(shù)據(jù)返回給客戶端。
[0109]在本發(fā)明的一些實施例中,生成單元可以具體用于:讀取校驗配置文件,通過服務器語言根據(jù)校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼。
[0110]在本發(fā)明的一些實施例中,生成單元可以包括:
[0111]讀取子單元,用于讀取校驗配置文件中的規(guī)則名稱獲取待校驗的頁面元素值,讀取校驗配置文件中的規(guī)則值獲得頁面元素值對應的規(guī)則值;
[0112]生成子單元,用于通過服務器語言自動生成判斷頁面元素值是否符合規(guī)則值的客戶端校驗代碼以及服務器校驗代碼。
[0113]在本發(fā)明的一些實施例中,校驗單元可以包括:
[0114]接收子單元,用于接收客戶端通過提交表單中嵌入的框架控件輸入的第二輸入數(shù)據(jù)。
[0115]校驗子單元,用于利用服務器校驗代碼對第二輸入數(shù)據(jù)進行校驗。
[0116]結果返回子單元,用于當?shù)诙斎霐?shù)據(jù)未通過校驗,則將當前第二輸入數(shù)據(jù)返回給客戶端提交表單中嵌入的框架控件。
[0117]這樣,本發(fā)明實施例通過使用統(tǒng)一的校驗配置文件,并根據(jù)校驗配置文件自動生成用于客戶端的校驗代碼以及用于服務器的校驗代碼,如果修改了校驗規(guī)則,只需要維護校驗配置文件即可同步修改服務器校驗代碼以及客戶端校驗代碼,省去了人工編寫修改服務器校驗代碼以及客戶端校驗代碼的步驟,從而提高了校驗代碼生成、修改的效率,也可以避免服務器以及客戶端校驗規(guī)則不一致的問題。另外,通過客戶端提交表單中嵌入的框架控件,避免了在數(shù)據(jù)返回時刷新頁面,從而不再需要將數(shù)據(jù)回填到提交頁面,節(jié)省了維護成本。
[0118]相應的,參見圖5所示,本發(fā)明實施例中還提供一種輸入數(shù)據(jù)校驗的系統(tǒng)實施例,可以包括:
[0119]服務器501以及客戶端502 ;
[0120]其中,服務器可以是上述實施例中的輸入數(shù)據(jù)校驗的裝置實施例;
[0121]客戶端可以用于接收客戶端校驗代碼,在接收到第一輸入數(shù)據(jù)時,利用客戶端校驗代碼對第一輸入數(shù)據(jù)進行校驗;向服務器發(fā)送第二輸入數(shù)據(jù),第二輸入數(shù)據(jù)是通過校驗的第一輸入數(shù)據(jù);接收服務器返回的未通過校驗的第二輸入數(shù)據(jù)。
[0122]在本發(fā)明的一些實施例中,客戶端可以具體用于:
[0123]接收客戶端校驗代碼,在接收到第一輸入數(shù)據(jù)時,利用客戶端校驗代碼對第一輸入數(shù)據(jù)進行校驗;通過提交表單中嵌入的框架控件向服務器發(fā)送第二輸入數(shù)據(jù),第二輸入數(shù)據(jù)是通過校驗的第一輸入數(shù)據(jù);利用提交表單中嵌入的框架控件接收服務器返回的未通過校驗的第二輸入數(shù)據(jù)。
[0124]這樣,本發(fā)明實施例通過使用統(tǒng)一的校驗配置文件,并根據(jù)校驗配置文件自動生成用于客戶端的校驗代碼以及用于服務器的校驗代碼,如果修改了校驗規(guī)則,只需要維護校驗配置文件即可同步修改服務器校驗代碼以及客戶端校驗代碼,省去了人工編寫修改服務器校驗代碼以及客戶端校驗代碼的步驟,從而提高了校驗代碼生成、修改的效率,也可以避免服務器以及客戶端校驗規(guī)則不一致的問題。另外,通過客戶端提交表單中嵌入的框架控件,避免了在數(shù)據(jù)返回時刷新頁面,從而不再需要將數(shù)據(jù)回填到提交頁面,節(jié)省了維護成本。
[0125]需要說明的是,本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的系統(tǒng)或裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
[0126]還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
[0127]結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或【技術領域】內(nèi)所公知的任意其它形式的存儲介質中。
[0128]對所公開的實施例的上述說明,使本領域專業(yè)技術人員能夠實現(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領域的專業(yè)技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
【權利要求】
1.一種輸入數(shù)據(jù)校驗的方法,其特征在于,所述方法包括: 保存預先設置的校驗配置文件,所述校驗配置文件包括校驗規(guī)則,所述校驗規(guī)則包括規(guī)則名稱以及規(guī)則值; 讀取所述校驗配置文件,根據(jù)所述校驗配置文件自動生成服務器校驗代碼以及客戶端校驗代碼; 將所述客戶端校驗代碼發(fā)送給客戶端,以使所述客戶端在接收到第一輸入數(shù)據(jù)時,利用所述客戶端校驗代碼對所述第一輸入數(shù)據(jù)進行校驗; 接收客戶端輸入的第二輸入數(shù)據(jù),利用所述服務器校驗代碼對所述第二輸入數(shù)據(jù)進行校驗,當所述第二輸入數(shù)據(jù)未通過校驗,則將當前所述第二輸入數(shù)據(jù)返回給所述客戶端。
2.根據(jù)權利要求1所述的方法,其特征在于,所述讀取所述校驗配置文件,根據(jù)所述校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼,包括: 讀取所述校驗配置文件,通過服務器語言根據(jù)校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼。
3.根據(jù)權利要求2所述的方法,其特征在于,讀取所述校驗配置文件,通過服務器語言根據(jù)校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼,包括: 讀取所述校驗配置文件中的規(guī)則名稱獲取待校驗的頁面元素值,讀取所述校驗配置文件中的規(guī)則值獲得所述頁面元素值對應的規(guī)則值; 通過服務器語言自動生成判斷所述頁面元素值是否符合所述規(guī)則值的客戶端校驗代碼以及服務器校驗代碼。
4.根據(jù)權利要求1所述的方法,其特征在于,接收第二輸入數(shù)據(jù),利用所述服務器校驗代碼對所述第二輸入數(shù)據(jù)進行校驗,當所述第二輸入數(shù)據(jù)未通過校驗,則將當前所述第二輸入數(shù)據(jù)返回給所述客戶端,包括: 接收所述客戶端通過提交表單中嵌入的框架控件輸入的第二輸入數(shù)據(jù); 利用所述服務器校驗代碼對所述第二輸入數(shù)據(jù)進行校驗; 當所述第二輸入數(shù)據(jù)未通過校驗,則將當前所述第二輸入數(shù)據(jù)返回給所述客戶端提交表單中嵌入的框架控件。
5.一種輸入數(shù)據(jù)校驗的裝置,其特征在于,所述裝置包括: 保存單元,用于保存預先設置的校驗配置文件,所述校驗配置文件包括校驗規(guī)則,所述校驗規(guī)則包括規(guī)則名稱以及規(guī)則值; 生成單元,用于讀取所述校驗配置文件,根據(jù)所述校驗配置文件自動生成服務器校驗代碼以及客戶端校驗代碼; 發(fā)送單元,用于將所述客戶端校驗代碼發(fā)送給客戶端,以使所述客戶端在接收到第一輸入數(shù)據(jù)時,利用所述客戶端校驗代碼對所述第一輸入數(shù)據(jù)進行校驗; 校驗單元,用于接收客戶端輸入的第二輸入數(shù)據(jù),利用所述服務器校驗代碼對所述第二輸入數(shù)據(jù)進行校驗,當所述第二輸入數(shù)據(jù)未通過校驗,則將當前所述第二輸入數(shù)據(jù)返回給所述客戶端。
6.根據(jù)權利要求5所述的裝置,其特征在于,所述生成單元具體用于: 讀取所述校驗配置文件,通過服務器語言根據(jù)校驗配置文件自動生成客戶端校驗代碼以及服務器校驗代碼。
7.根據(jù)權利要求6所述的裝置,其特征在于,所述生成單元包括: 讀取子單元,用于讀取所述校驗配置文件中的規(guī)則名稱獲取待校驗的頁面元素值,讀取所述校驗配置文件中的規(guī)則值獲得所述頁面元素值對應的規(guī)則值; 生成子單元,用于通過服務器語言自動生成判斷所述頁面元素值是否符合所述規(guī)則值的客戶端校驗代碼以及服務器校驗代碼。
8.根據(jù)權利要求5所述的裝置,其特征在于,所述校驗單元包括: 接收子單元,用于接收所述客戶端通過提交表單中嵌入的框架控件輸入的第二輸入數(shù)據(jù); 校驗子單元,用于利用所述服務器校驗代碼對所述第二輸入數(shù)據(jù)進行校驗; 結果返回子單元,用于當所述第二輸入數(shù)據(jù)未通過校驗,則將當前所述第二輸入數(shù)據(jù)返回給所述客戶端提交表單中嵌入的框架控件。
9.一種輸入數(shù)據(jù)校驗的系統(tǒng),其特征在于,所述系統(tǒng)包括: 服務器以及客戶端; 所述服務器是權利要求5-8任一項所述的輸入數(shù)據(jù)校驗的裝置; 所述客戶端用于接收客戶端校驗代碼,在接收到第一輸入數(shù)據(jù)時,利用所述客戶端校驗代碼對所述第一輸入數(shù)據(jù)進行校驗;向所述服務器發(fā)送第二輸入數(shù)據(jù),所述第二輸入數(shù)據(jù)是通過校驗的所述第一輸入數(shù)據(jù);接收所述服務器返回的未通過校驗的第二輸入數(shù)據(jù)。
10.根據(jù)權利要求9所述的系統(tǒng),其特征在于,所述客戶端具體用于: 接收客戶端校驗代碼,在接收到第一輸入數(shù)據(jù)時,利用所述客戶端校驗代碼對所述第一輸入數(shù)據(jù)進行校驗; 通過提交表單中嵌入的框架控件向所述服務器發(fā)送第二輸入數(shù)據(jù),所述第二輸入數(shù)據(jù)是通過校驗的所述第一輸入數(shù)據(jù); 利用所述提交表單中嵌入的框架控件接收所述服務器返回的未通過校驗的第二輸入數(shù)據(jù)。
【文檔編號】H04L29/06GK104270395SQ201410578530
【公開日】2015年1月7日 申請日期:2014年10月24日 優(yōu)先權日:2014年10月24日
【發(fā)明者】章夢, 何明杰, 傅強, 張興強, 龐以新, 駱國生, 馬林, 朱伙, 趙欣, 龐云鵬 申請人:中國建設銀行股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
榕江县| 张家港市| 宜宾县| 涡阳县| 甘南县| 曲阳县| 龙州县| 阿巴嘎旗| 甘泉县| 十堰市| 绥江县| 丰镇市| 清河县| 新和县| 江口县| 望谟县| 宣武区| 平度市| 濮阳县| 桃江县| 紫金县| 荔浦县| 三江| 阳西县| 共和县| 公安县| 墨竹工卡县| 潜山县| 克山县| 钟祥市| 肥乡县| 城市| 天门市| 泾阳县| 蓝山县| 麦盖提县| 元氏县| 凤阳县| 文安县| 达日县| 宜丰县|