一種數(shù)據(jù)驗證方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開一種數(shù)據(jù)驗證方法及系統(tǒng),方法包括:移動終端響應(yīng)用戶的表單提交請求,獲取與所述表單對應(yīng)的前端驗證配置文件,根據(jù)所述前端驗證配置文件對所述表單進(jìn)行前端驗證,如果驗證通過,則將所述表單提交到后臺服務(wù)器;后臺服務(wù)器獲取移動終端提交的所述表單,獲取所述表單對應(yīng)的后臺驗證配置文件,根據(jù)所述后臺驗證配置文件對所述表單進(jìn)行后臺驗證,如果驗證通過,則執(zhí)行后續(xù)業(yè)務(wù)處理;所述前端驗證配置文件與所述后臺驗證配置文件相同。本發(fā)明同時在移動終端和后臺服務(wù)器進(jìn)行前端驗證和后臺驗證,同時,在開發(fā)前端驗證程序和后臺驗證程序時,僅需同一個配置文件即可進(jìn)行配置,保證了網(wǎng)站程序前端驗證和后臺驗證的一致性。
【專利說明】一種數(shù)據(jù)驗證方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理相關(guān)【技術(shù)領(lǐng)域】,特別是一種數(shù)據(jù)驗證方法及系統(tǒng)。
【背景技術(shù)】
[0002] 前端驗證框架是在瀏覽器中,通過javascript腳本實現(xiàn)對用戶輸入數(shù)據(jù)正確性 進(jìn)行驗證。而前端驗證由于在用戶瀏覽器中,用戶通過特殊手段可以繞過,故而網(wǎng)站在系統(tǒng) 后臺需要進(jìn)行后臺數(shù)據(jù)驗證。
[0003] 隨著互聯(lián)網(wǎng)的普及,用戶輸入的安全性問題愈來愈嚴(yán)重,后端表單驗證功能應(yīng)運 而生,表單驗證的作用是對用戶輸入的參數(shù)進(jìn)行合法性校驗。它通過讀取系統(tǒng)的規(guī)則配置, 對表單的合法性進(jìn)行驗證,并返回驗證是否成功和驗證消息。
[0004] 然而,采用后臺驗證需要與后臺服務(wù)器通信,其處理速度受到網(wǎng)絡(luò)傳輸影響。同 時,配置文件一般采用XML進(jìn)行配置,格式較復(fù)雜而且配置內(nèi)容過長。
[0005] 可擴(kuò)展標(biāo)記語言(Extensible Markup Language, XML),用于標(biāo)記電子文件使其具 有結(jié)構(gòu)性的標(biāo)記語言,可以用來標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對自己的標(biāo)記語 言進(jìn)行定義的源語言。XML是標(biāo)準(zhǔn)通用標(biāo)記語言(SGML)的子集,非常適合Web傳輸。XML 提供統(tǒng)一的方法來描述和交換獨立于應(yīng)用程序或供應(yīng)商的結(jié)構(gòu)化數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0006] 基于此,有必要針對現(xiàn)有技術(shù)未能同時實現(xiàn)前端驗證與后端驗證的技術(shù)問題,提 供一種數(shù)據(jù)驗證方法及系統(tǒng)。
[0007] -種數(shù)據(jù)驗證方法,包括:
[0008] 移動終端響應(yīng)用戶的表單提交請求,獲取與所述表單對應(yīng)的前端驗證配置文件, 根據(jù)所述前端驗證配置文件對所述表單進(jìn)行前端驗證,如果驗證通過,則將所述表單提交 到后臺服務(wù)器,如果驗證失敗,則中止后續(xù)處理;
[0009] 后臺服務(wù)器獲取移動終端提交的所述表單,獲取所述表單對應(yīng)的后臺驗證配置文 件,根據(jù)所述后臺驗證配置文件對所述表單進(jìn)行后臺驗證,如果驗證通過,則執(zhí)行后續(xù)業(yè)務(wù) 處理,如果驗證失敗,則中止后續(xù)處理;
[0010] 所述前端驗證配置文件與所述后臺驗證配置文件相同。
[0011] 一種數(shù)據(jù)驗證系統(tǒng),包括:
[0012] 設(shè)置在移動終端的前端驗證模塊,用于移動終端響應(yīng)用戶的表單提交請求,獲取 與所述表單對應(yīng)的前端驗證配置文件,根據(jù)所述前端驗證配置文件對所述表單進(jìn)行前端驗 證,如果驗證通過,則將所述表單提交到后臺服務(wù)器,如果驗證失敗,則中止后續(xù)處理;
[0013] 設(shè)置在后臺服務(wù)器的后臺驗證模塊,用于后臺服務(wù)器獲取移動終端提交的所述表 單,獲取所述表單對應(yīng)的后臺驗證配置文件,根據(jù)所述后臺驗證配置文件對所述表單進(jìn)行 后臺驗證,如果驗證通過,則執(zhí)行后續(xù)業(yè)務(wù)處理,如果驗證失敗,則中止后續(xù)處理;
[0014] 所述前端驗證配置文件與所述后臺驗證配置文件相同。
[0015] 本發(fā)明同時在移動終端和后臺服務(wù)器進(jìn)行前端驗證和后臺驗證,采用前端驗證, 則用戶輸入的錯誤問題會通過移動終端的前端驗證完成驗證,用戶可以及時進(jìn)行修改,而 無需等待后臺返回驗證信息,而后臺驗證進(jìn)一步保證用戶無法通過各種特殊手段繞過前端 驗證,從而保證驗證的可靠性,同時,由于采用相同的前端驗證配置文件和后臺驗證配置文 件,因此,在開發(fā)前端驗證程序和后臺驗證程序時,僅需同一個配置文件即可進(jìn)行配置,保 證了網(wǎng)站程序前端驗證和后臺驗證的一致性。
【專利附圖】
【附圖說明】
[0016] 圖1為本發(fā)明一種數(shù)據(jù)驗證方法的工作流程圖;
[0017] 圖2為本發(fā)明一種數(shù)據(jù)驗證系統(tǒng)的結(jié)構(gòu)模塊圖。
【具體實施方式】
[0018] 下面結(jié)合附圖和具體實施例對本發(fā)明做進(jìn)一步詳細(xì)的說明。
[0019] 如圖1所示為本發(fā)明一種數(shù)據(jù)驗證方法的工作流程圖,包括:
[0020] 步驟S101,移動終端響應(yīng)用戶的表單提交請求,獲取與所述表單對應(yīng)的前端驗證 配置文件,根據(jù)所述前端驗證配置文件對所述表單進(jìn)行前端驗證,如果驗證通過,則將所述 表單提交到后臺服務(wù)器,執(zhí)行步驟S102,如果驗證失敗,則中止后續(xù)處理;
[0021] 步驟S102,后臺服務(wù)器獲取移動終端提交的所述表單,獲取所述表單對應(yīng)的后臺 驗證配置文件,根據(jù)所述后臺驗證配置文件對所述表單進(jìn)行后臺驗證,如果驗證通過,則執(zhí) 行后續(xù)業(yè)務(wù)處理,如果驗證失敗,則中止后續(xù)處理;
[0022] 所述前端驗證配置文件與所述后臺驗證配置文件相同。
[0023] 其中,前端驗證配置文件與所述后臺驗證配置文件相同,因此對于開發(fā)者來說,其 無需維護(hù)兩套驗證配置文件。由于采用相同的驗證配置文件,因此開發(fā)者在移動終端實現(xiàn) 前端驗證,而在后臺服務(wù)器實現(xiàn)后臺驗證,且前端驗證與后臺驗證能實現(xiàn)最大限度的代碼 復(fù)用,節(jié)省開發(fā)時間和開發(fā)成本。
[0024] 在其中一個實施例中,所述前端驗證配置文件與所述后臺驗證配置文件為JS0N 文件,所述移動終端采用JavaScript進(jìn)行驗證,所述后臺服務(wù)器采用JAVA進(jìn)行驗證。
[0025] JS0N文件是一種輕量級的數(shù)據(jù)交換格式。它基于JavaScript (Standard ECMA-262 3rdEdition-December 1999)的一個子集。JS0N采用完全獨立于語言的文本格式,體積小 巧,閱讀方便,而且與語言和平臺無關(guān)。這些特性使JS0N成為理想的數(shù)據(jù)交換語言。易于 人閱讀和編寫,同時也易于機(jī)器解析和生成。
[0026] 可以采用Jackson開源框架實現(xiàn)本發(fā)明,Jackson開源框架是一款JAVA平臺用于 解析JS0N格式的開源框架,通過它可以快速的實現(xiàn)JAVA對象轉(zhuǎn)換為JS0N格式數(shù)據(jù),也可 以將JS0N格式的數(shù)據(jù)快速轉(zhuǎn)換為JAVA對象。
[0027] Javascript是一種由Netscape的LiveScript發(fā)展而來的原型化繼承的基于對象 的動態(tài)類型的區(qū)分大小寫的客戶端腳本語言,主要目的是為了解決服務(wù)器端語言遺留的速 度問題,為客戶提供更流暢的瀏覽效果。
[0028] JAVA -種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計語言,是由 Sun Microsystems公司于1995年5月推出的Java程序設(shè)計語言和Java平臺(即 JavaSE,JavaEE,JavaME)的總稱。
[0029] 在其中一個實施例中:
[0030] 所述表單包括至少一個輸入域,所述前端驗證配置文件與所述后臺驗證配置文件 具有與每個所述輸入域?qū)?yīng)的驗證域,且每個驗證域包括至少一個驗證規(guī)則;
[0031] 所述前端驗證對每個輸入域根據(jù)前端驗證配置文件中對應(yīng)的驗證域中的驗證規(guī) 則進(jìn)行驗證;
[0032] 所述后臺驗證對每個輸入域根據(jù)后臺驗證配置文件中對應(yīng)的驗證域中的驗證規(guī) 則進(jìn)行驗證。
[0033] 作為一個例子,一個簡單的用戶登錄表單配置如下:
[0034] {form: ' loginForm7, fields: { /uscrNamc7: { di sp 1 ayNamc: ' 用戶名稱', must: true, maxLength: 50, reg: ' Λ [\\w\\-] +$' },
[0035]
【權(quán)利要求】
1. 一種數(shù)據(jù)驗證方法,其特征在于,包括: 移動終端響應(yīng)用戶的表單提交請求,獲取與所述表單對應(yīng)的前端驗證配置文件,根據(jù) 所述前端驗證配置文件對所述表單進(jìn)行前端驗證,如果驗證通過,則將所述表單提交到后 臺服務(wù)器,如果驗證失敗,則中止后續(xù)處理; 后臺服務(wù)器獲取移動終端提交的所述表單,獲取所述表單對應(yīng)的后臺驗證配置文件, 根據(jù)所述后臺驗證配置文件對所述表單進(jìn)行后臺驗證,如果驗證通過,則執(zhí)行后續(xù)業(yè)務(wù)處 理,如果驗證失敗,則中止后續(xù)處理; 所述前端驗證配置文件與所述后臺驗證配置文件相同。
2. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)驗證方法,其特征在于,所述前端驗證配置文件與所述 后臺驗證配置文件為JSON文件,所述移動終端采用JavaScript進(jìn)行驗證,所述后臺服務(wù)器 米用JAVA進(jìn)行驗證。
3. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)驗證方法,其特征在于: 所述表單包括至少一個輸入域,所述前端驗證配置文件與所述后臺驗證配置文件具有 與每個所述輸入域?qū)?yīng)的驗證域,且每個驗證域包括至少一個驗證規(guī)則; 所述前端驗證對每個輸入域根據(jù)前端驗證配置文件中對應(yīng)的驗證域中的驗證規(guī)則進(jìn) 行驗證; 所述后臺驗證對每個輸入域根據(jù)后臺驗證配置文件中對應(yīng)的驗證域中的驗證規(guī)則進(jìn) 行驗證。
4. 根據(jù)權(quán)利要求3所述的數(shù)據(jù)驗證方法,其特征在于: 所述驗證規(guī)則包括采用正則表達(dá)式描述的正則驗證規(guī)則; 所述前端驗證對每個輸入域檢查所述前端驗證配置文件中對應(yīng)的驗證域中是否包括 有所述正則驗證規(guī)則,當(dāng)所述驗證域包括所述正則驗證規(guī)則時,如果對應(yīng)的輸入域匹配所 述正則驗證規(guī)則的正則表達(dá)式,則對應(yīng)的輸入域驗證通過,否則對應(yīng)的輸入域驗證失??; 所述后臺驗證對每個輸入域檢查所述后臺驗證配置文件中對應(yīng)的驗證域中是否包括 有所述正則驗證規(guī)則,當(dāng)所述驗證域包括所述正則驗證規(guī)則時,如果對應(yīng)的輸入域匹配所 述正則驗證規(guī)則的正則表達(dá)式,則對應(yīng)的輸入域驗證通過,否則對應(yīng)的輸入域驗證失敗。
5. 根據(jù)權(quán)利要求3所述的數(shù)據(jù)驗證方法,其特征在于: 所述驗證規(guī)則包括采用擴(kuò)展驗證標(biāo)識描述的擴(kuò)展驗證規(guī)則; 所述后臺驗證對每個輸入域檢查所述后臺驗證配置文件中對應(yīng)的驗證域中是否包括 有所述擴(kuò)展驗證規(guī)則; 如果所述驗證域包括所述擴(kuò)展驗證規(guī)則,則與包括所述擴(kuò)展驗證標(biāo)識的驗證域?qū)?yīng)的 輸入域為擴(kuò)展驗證輸入域,調(diào)用預(yù)先保存在所述后臺服務(wù)器且與所述擴(kuò)展驗證標(biāo)識對應(yīng)的 擴(kuò)展驗證器對所述擴(kuò)展驗證輸入域進(jìn)行擴(kuò)展驗證。
6. 根據(jù)權(quán)利要求3所述的數(shù)據(jù)驗證方法,其特征在于: 所述前端配置文件和所述后臺配置文件還包括選擇設(shè)置的忽略標(biāo)識; 所述前端驗證還包括:如果所述前端配置文件設(shè)置有所述忽略標(biāo)識,則對所述表單的 每個輸入域進(jìn)行驗證,如果有任意一個輸入域驗證失敗,則忽略對其他輸入域進(jìn)行驗證,返 回驗證失敗,并中止后續(xù)處理;如果所述前端配置文件未設(shè)置所述忽略標(biāo)識,則對所述表單 的每個輸入域進(jìn)行驗證,如果有任意一個輸入域驗證失敗,則記錄驗證失敗的輸入域,并繼 續(xù)對其他輸入域進(jìn)行驗證,在對所有的輸入域進(jìn)行驗證完畢后,返回驗證失敗,并提示驗證 失敗的輸入域,中止后續(xù)處理。 所述后臺驗證還包括:如果所述后臺配置文件設(shè)置有所述忽略標(biāo)識,則對所述表單的 每個輸入域進(jìn)行驗證,如果有任意一個輸入域驗證失敗,則忽略對其他輸入域進(jìn)行驗證,返 回驗證失敗,并中止后續(xù)處理;如果所述后臺配置文件未設(shè)置所述忽略標(biāo)識,則對所述表單 的每個輸入域進(jìn)行驗證,如果有任意一個輸入域驗證失敗,則記錄驗證失敗的輸入域,并繼 續(xù)對其他輸入域進(jìn)行驗證,在對所有的輸入域進(jìn)行驗證完畢后,返回驗證失敗,并提示驗證 失敗的輸入域,中止后續(xù)處理。
7. -種數(shù)據(jù)驗證系統(tǒng),其特征在于,包括: 設(shè)置在移動終端的前端驗證模塊,用于移動終端響應(yīng)用戶的表單提交請求,獲取與所 述表單對應(yīng)的前端驗證配置文件,根據(jù)所述前端驗證配置文件對所述表單進(jìn)行前端驗證, 如果驗證通過,則將所述表單提交到后臺服務(wù)器,如果驗證失敗,則中止后續(xù)處理; 設(shè)置在后臺服務(wù)器的后臺驗證模塊,用于后臺服務(wù)器獲取移動終端提交的所述表單, 獲取所述表單對應(yīng)的后臺驗證配置文件,根據(jù)所述后臺驗證配置文件對所述表單進(jìn)行后臺 驗證,如果驗證通過,則執(zhí)行后續(xù)業(yè)務(wù)處理,如果驗證失敗,則中止后續(xù)處理; 所述前端驗證配置文件與所述后臺驗證配置文件相同。
8. 根據(jù)權(quán)利要求7所述的數(shù)據(jù)驗證系統(tǒng),其特征在于,所述前端驗證配置文件與所述 后臺驗證配置文件為JSON文件,所述移動終端采用JavaScript進(jìn)行驗證,所述后臺服務(wù)器 米用JAVA進(jìn)行驗證。
9. 根據(jù)權(quán)利要求7所述的數(shù)據(jù)驗證系統(tǒng),其特征在于: 所述表單包括至少一個輸入域,所述前端驗證配置文件與所述后臺驗證配置文件具有 與每個所述輸入域?qū)?yīng)的驗證域,且每個驗證域包括至少一個驗證規(guī)則; 所述前端驗證對每個輸入域根據(jù)前端驗證配置文件中對應(yīng)的驗證域中的驗證規(guī)則進(jìn) 行驗證; 所述后臺驗證對每個輸入域根據(jù)后臺驗證配置文件中對應(yīng)的驗證域中的驗證規(guī)則進(jìn) 行驗證。
10. 根據(jù)權(quán)利要求9所述的數(shù)據(jù)驗證系統(tǒng),其特征在于: 所述驗證規(guī)則包括采用正則表達(dá)式描述的正則驗證規(guī)則; 所述前端驗證對每個輸入域檢查所述前端驗證配置文件中對應(yīng)的驗證域中是否包括 有所述正則驗證規(guī)則,當(dāng)所述驗證域包括所述正則驗證規(guī)則時,如果對應(yīng)的輸入域匹配所 述正則驗證規(guī)則的正則表達(dá)式,則對應(yīng)的輸入域驗證通過,否則對應(yīng)的輸入域驗證失??; 所述后臺驗證對每個輸入域檢查所述后臺驗證配置文件中對應(yīng)的驗證域中是否包括 有所述正則驗證規(guī)則,當(dāng)所述驗證域包括所述正則驗證規(guī)則時,如果對應(yīng)的輸入域匹配所 述正則驗證規(guī)則的正則表達(dá)式,則對應(yīng)的輸入域驗證通過,否則對應(yīng)的輸入域驗證失敗。
11. 根據(jù)權(quán)利要求9所述的數(shù)據(jù)驗證系統(tǒng),其特征在于: 所述驗證規(guī)則包括采用擴(kuò)展驗證標(biāo)識描述的擴(kuò)展驗證規(guī)則; 所述后臺驗證對每個輸入域檢查所述后臺驗證配置文件中對應(yīng)的驗證域中是否包括 有所述擴(kuò)展驗證規(guī)則; 如果所述驗證域包括所述擴(kuò)展驗證規(guī)則,則與包括所述擴(kuò)展驗證標(biāo)識的驗證域?qū)?yīng)的 輸入域為擴(kuò)展驗證輸入域,調(diào)用預(yù)先保存在所述后臺服務(wù)器且與所述擴(kuò)展驗證標(biāo)識對應(yīng)的 擴(kuò)展驗證器對所述擴(kuò)展驗證輸入域進(jìn)行擴(kuò)展驗證。
12.根據(jù)權(quán)利要求9所述的數(shù)據(jù)驗證系統(tǒng),其特征在于: 所述前端配置文件和所述后臺配置文件還包括選擇設(shè)置的忽略標(biāo)識; 所述前端驗證還包括:如果所述前端配置文件設(shè)置有所述忽略標(biāo)識,則對所述表單的 每個輸入域進(jìn)行驗證,如果有任意一個輸入域驗證失敗,則忽略對其他輸入域進(jìn)行驗證,返 回驗證失敗,并中止后續(xù)處理;如果所述前端配置文件未設(shè)置所述忽略標(biāo)識,則對所述表單 的每個輸入域進(jìn)行驗證,如果有任意一個輸入域驗證失敗,則記錄驗證失敗的輸入域,并繼 續(xù)對其他輸入域進(jìn)行驗證,在對所有的輸入域進(jìn)行驗證完畢后,返回驗證失敗,并提示驗證 失敗的輸入域,中止后續(xù)處理。 所述后臺驗證還包括:如果所述后臺配置文件設(shè)置有所述忽略標(biāo)識,則對所述表單的 每個輸入域進(jìn)行驗證,如果有任意一個輸入域驗證失敗,則忽略對其他輸入域進(jìn)行驗證,返 回驗證失敗,并中止后續(xù)處理;如果所述后臺配置文件未設(shè)置所述忽略標(biāo)識,則對所述表單 的每個輸入域進(jìn)行驗證,如果有任意一個輸入域驗證失敗,則記錄驗證失敗的輸入域,并繼 續(xù)對其他輸入域進(jìn)行驗證,在對所有的輸入域進(jìn)行驗證完畢后,返回驗證失敗,并提示驗證 失敗的輸入域,中止后續(xù)處理。
【文檔編號】G06F17/30GK104049972SQ201410273256
【公開日】2014年9月17日 申請日期:2014年6月18日 優(yōu)先權(quán)日:2014年6月18日
【發(fā)明者】劉軍, 張世彬 申請人:北京京東尚科信息技術(shù)有限公司, 北京京東世紀(jì)貿(mào)易有限公司