一種基于Web的安全的用戶交互方法
【專利摘要】本發(fā)明涉及一種基于Web的安全的用戶交互方法。該方法包括下述步驟:瀏覽器發(fā)送頁面訪問請求到Web應(yīng)用;Web應(yīng)用接收到該頁面訪問請求后,在用戶Session中設(shè)置變量SS的值并且動(dòng)態(tài)生成用戶請求的頁面,其中,所述頁面包含隱藏元素ES并且置所述隱藏元素ES的值等于變量SS的值;瀏覽器接收并顯示從Web應(yīng)用返回的用戶請求頁面,在由用戶填寫所述頁面包含的表單之后提交至Web應(yīng)用;以及Web應(yīng)用攔截用戶提交表單的請求并且驗(yàn)證表單中的隱藏元素ES和Session中的變量SS是否相等,僅在隱藏元素ES和Session中的變量SS相等的情況下通過校驗(yàn)。利用本發(fā)明能夠有效防止用戶使用瀏覽器退回前進(jìn)功能對同一頁面重復(fù)提交,并且能夠及時(shí)發(fā)現(xiàn)會(huì)話劫持。
【專利說明】—種基于Web的安全的用戶交互方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及基于Web的數(shù)據(jù)處理技術(shù),具體地涉及基于Web的安全的用戶交互方法。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)的發(fā)展,基于BS架構(gòu)的Web系統(tǒng)應(yīng)用也越來越廣泛,并大量應(yīng)用于金融和證券行業(yè),而這些行業(yè)往往對Web系統(tǒng)的安全性要求會(huì)比較高。所謂B/S構(gòu)架是指,Browser/Server,瀏覽器/服務(wù)器模式,是WEB興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,WEB瀏覽器是客戶端最主要的應(yīng)用軟件,這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上,簡化了系統(tǒng)的開發(fā)、維護(hù)和使用,客戶機(jī)上只要安裝一個(gè)瀏覽器(Browser ),服務(wù)器只要安裝數(shù)據(jù)庫,瀏覽器通過Web Server同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互。
[0003]目前一般對安全要求比較高Web系統(tǒng)都要求禁止用戶使用瀏覽器回退(前進(jìn))功能,禁止打開多個(gè)頁面同時(shí)操作,并對防止會(huì)話劫持有相關(guān)的處理。比較常見的做法如下:
(1)通過編寫頁面JavaScript限制用戶重復(fù)提交(即用戶提交表單后將表單的提交按鈕置為不可用)。但是這種做法首先在瀏覽器禁用JavaScript的情況下不可行,其次用戶還是可以通過瀏覽器回退功能對同一表單重復(fù)提交,再次不能限制用戶還可以通過開啟多個(gè)瀏覽器頁面(共享Sess1n)的方式同時(shí)提交表單。
[0004](2)每次生成表單頁面時(shí),彈出一個(gè)新的窗口,并在用戶提交表單時(shí)關(guān)閉當(dāng)前窗口,這樣可以有效防止用戶使用瀏覽器回退(前進(jìn))功能實(shí)現(xiàn)重復(fù)提交。但是在有很多頁面都需要限制用戶重復(fù)提時(shí),這種彈出頁面的方式,則會(huì)降低用戶體驗(yàn);這種方式仍然不能限制用戶通過開啟多個(gè)瀏覽器頁面(共享Sess1n)的方式同時(shí)提交表單。
[0005](3)針對Sess1n劫持,目前業(yè)內(nèi)已經(jīng)有比較成熟的方案,可以通過對Sess1nID加密,設(shè)置Sess1nID過期時(shí)間,及時(shí)更改和注銷Sess1nID等措施增加Sess1n劫持的難度。但是對于Sess1nID在用戶操作期間已經(jīng)被劫持的情況,缺少一種及時(shí)發(fā)現(xiàn)的機(jī)制。
【發(fā)明內(nèi)容】
[0006]鑒于上述問題,本發(fā)明旨在提供一種能夠有效防止用戶使用瀏覽器回退前進(jìn)功能對同一頁面的重復(fù)提交的基于Web的安全的用戶交互方法。
[0007]進(jìn)一步地,本發(fā)明也旨在提供一種能夠防止用戶同事打開多個(gè)瀏覽器頁面通過共享Sess1nID進(jìn)行多頁面同時(shí)操作的基于Web的安全的用戶交互方法。
[0008]本發(fā)明第一方面的基于Web的安全的用戶交互方法是在瀏覽器和Web應(yīng)用之間進(jìn)行交互數(shù)據(jù)處理的方法,其特征在于,包括下述步驟:
訪問請求步驟,瀏覽器發(fā)送頁面訪問請求到Web應(yīng)用;
初始設(shè)置步驟,Web應(yīng)用接收到該頁面訪問請求后,在用戶Sess1n中設(shè)置變量SS的值并且動(dòng)態(tài)生成用戶請求的頁面,其中,所述頁面包含隱藏元素ES并且置所述隱藏元素ES的值等于變量SS的值; 表單提交步驟,瀏覽器接收并顯示從Web應(yīng)用返回的用戶請求頁面,在由用戶填寫所述頁面包含的表單之后提交至Web應(yīng)用;以及
校驗(yàn)步驟,Web應(yīng)用攔截用戶提交表單的請求并且驗(yàn)證表單中的隱藏元素ES和Sess1n中的變量SS是否相等,僅在隱藏元素ES和Sess1n中的變量SS相等的情況下通過校驗(yàn)。
[0009]優(yōu)選地,在所述校驗(yàn)步驟中,在通過校驗(yàn)的情況下,設(shè)置Sess1n中的變量SS為一個(gè)新值。
[0010]優(yōu)選地,在所述校驗(yàn)步驟中,如果隱藏元素ES和Sess1n中的變量SS不相等的情況下則不通過校驗(yàn)。
[0011]優(yōu)選地,在所述校驗(yàn)步驟中,如果隱藏元素ES和Sess1n中的變量SS不相等的情況下則不通過校驗(yàn),提示用戶向服務(wù)器請求了新的含表單的頁面;或者,如果用戶操作都是合法的情況下,則提示用戶存在Sess1n被劫持的風(fēng)險(xiǎn)。
[0012]優(yōu)選地,在所述初始設(shè)置步驟中,設(shè)置變量SS為任意隨機(jī)數(shù)。
[0013]優(yōu)選地,在所述校驗(yàn)步驟,Web應(yīng)用通過Sess1n Filter (會(huì)話過濾器)攔截用戶提交表單的請求。
[0014]根據(jù)本發(fā)明第一方面的基于Web的安全的用戶交互方法,能夠有效防止用戶使用瀏覽器回退(前進(jìn))功能對同一頁面重復(fù)提交,而且還能夠有效防止Sess1n被劫持的風(fēng)險(xiǎn)。
[0015]本發(fā)明的基于Web的安全的用戶交互方法,是多個(gè)瀏覽器和Web應(yīng)用之間進(jìn)行交互數(shù)據(jù)處理的方法,其特征在于,包括下述步驟:
第一訪問請求步驟,第一瀏覽器發(fā)送第一頁面訪問請求到Web應(yīng)用;
第一初始設(shè)置步驟,Web應(yīng)用接收到該第一頁面訪問請求后,在用戶Sess1n中設(shè)置第一變量SS的值并且動(dòng)態(tài)生成第一用戶請求頁面,其中,所述頁面包含第一隱藏元素ES并且置所述第一隱藏元素ES的值等于第一變量SS的值;
第二訪問請求步驟,第二瀏覽器發(fā)送第二頁面訪問請求到Web應(yīng)用;
第二初始設(shè)置步驟,Web應(yīng)用接收到該第二頁面訪問請求后,在用戶Sess1n (會(huì)話)中設(shè)置第二變量SS的值并且動(dòng)態(tài)生成用戶請求的頁面,其中,所述頁面包含第二隱藏元素ES并且置所述第二隱藏元素ES的值等于第二變量SS的值;
第一表單提交步驟,第一瀏覽器接收并顯示從Web應(yīng)用返回的第一用戶請求頁面,在由用戶填寫所述頁面包含的第一表單之后提交至Web應(yīng)用;
第一校驗(yàn)步驟,Web應(yīng)用攔截用戶提交的第一表單的請求并且驗(yàn)證第一表單中的第一隱藏元素ES和Sess1n中的第二變量SS是否相等,僅在第一隱藏元素ES和Sess1n中的第二變量SS相等的情況下通過校驗(yàn),而如果第一隱藏元素ES和Sess1n中的第二變量SS不相等的情況下,重置第一變量SS的值;
第二表單提交步驟,第二瀏覽器接收并顯示從Web應(yīng)用返回的第二用戶請求頁面,在由用戶填寫所述頁面包含的第二表單之后提交至Web應(yīng)用;以及
第二校驗(yàn)步驟,Web應(yīng)用攔截用戶提交的第二表單的請求并且驗(yàn)證第二表單中的第二隱藏元素ES和Sess1n中的第一變量SS是否相等,僅在第二隱藏元素ES和Sess1n中的第一變量SS相等的情況下通過校驗(yàn),而如果第二隱藏元素ES和Sess1n中的第一變量SS不相等的情況下不通過驗(yàn)證。
[0016]優(yōu)選地,在所述第一校驗(yàn)步驟中,如果第一隱藏元素ES和Sess1n中的第二變量SS不相等的情況下則不通過校驗(yàn),提示用于操作存在風(fēng)險(xiǎn),在所述第二校驗(yàn)步驟中,如果第二隱藏元素ES和Sess1n中的第一變量SS不相等的情況下則不通過校驗(yàn),并且提示用于操作存在風(fēng)險(xiǎn)。
[0017]優(yōu)選地,在所述第一初始設(shè)置步驟中,設(shè)置第一變量SS為任意隨機(jī)數(shù),在所述第二初始設(shè)置步驟中,設(shè)置第二變量SS為任意隨機(jī)數(shù)。
[0018]優(yōu)選地,在所述第一校驗(yàn)步驟,Web應(yīng)用通過Sess1n Filter (會(huì)話過濾器)攔截用戶提交表單的請求,在所述第二校驗(yàn)步驟,Web應(yīng)用通過Sess1n Filter攔截用戶提交表單的請求。
[0019]根據(jù)本發(fā)明第二方面的基于Web的安全的用戶交互方法,能夠有效防止用戶同時(shí)打開多個(gè)瀏覽器頁面通過共享Sess1nID,進(jìn)行多頁面同時(shí)操作,并且還能夠即使發(fā)現(xiàn)會(huì)話劫持,提醒用戶采取響應(yīng)的安全措施。
[0020]
【專利附圖】
【附圖說明】
[0021]圖1是本發(fā)明第一實(shí)施方式的基于Web的安全的用戶交互方法的步序圖。
[0022]圖2是本發(fā)明第二實(shí)施方式的基于Web的安全的用戶交互方法的步序圖。
[0023]
【具體實(shí)施方式】
[0024]下面介紹的是本發(fā)明的多個(gè)實(shí)施例中的一些,旨在提供對本發(fā)明的基本了解。并不旨在確認(rèn)本發(fā)明的關(guān)鍵或決定性的要素或限定所要保護(hù)的范圍。
[0025]為了有效防止用戶使用瀏覽器回退(前進(jìn))功能對同一頁面重復(fù)提交,防止用戶通過開啟瀏覽器多頁面(共享Sess1n)的方式同時(shí)提交表單。本發(fā)明采用通過維護(hù)Sess1n狀態(tài),并結(jié)合了動(dòng)態(tài)Web頁面生成技術(shù),提出了一種安全的Web交互方式,該交互方式還能及時(shí)發(fā)現(xiàn)Sess1n被劫持,及時(shí)提醒用戶。
[0026]第一實(shí)施方式
圖1是本發(fā)明第一實(shí)施方式的基于Web的安全的用戶交互方法的步序圖。
[0027]如圖1所示,本發(fā)明第一實(shí)施方式的基于Web的安全的用戶交互方法包括下述步驟:
具體的實(shí)現(xiàn)步驟如下:
步驟(1):瀏覽器發(fā)送頁面訪問請求到Web應(yīng)用。
[0028]步驟(2):Web應(yīng)用接收到請求后,在用戶Sess1n中設(shè)置變量SS的值為任意隨機(jī)數(shù),并動(dòng)態(tài)生成用戶請求的頁面,頁面中包含隱藏元素ES,其值等于Sess1n中SS的值。
[0029]在圖1的實(shí)施例中,設(shè)置變量SS = 3568,并且使得隱藏元素ES = SS = 3568。
[0030]而且,這里的動(dòng)態(tài)生成用戶請求的頁面是相對于靜態(tài)頁面而言的,每次返回給用戶的應(yīng)答頁面(請參見下述步驟(3))都是根據(jù)用戶的請求動(dòng)態(tài)生成的,具體體現(xiàn)在每次ES值是不同的。
[0031]步驟(3):瀏覽器接收并顯示用戶請求的頁面,用戶填寫完成頁面包含的表單后,提交給Web應(yīng)用,同時(shí)ES的值即ES = 3568也被提交。
[0032]步驟(4):Web應(yīng)用通過Sess1n Filter攔截用戶提交表單的請求,并驗(yàn)證表單中的元素ES和Sess1n中的變量SS是否相等。
[0033]步驟(5):如果ES與SS相等,S卩如果ES = SS = 3568的情況下,則校驗(yàn)通過,設(shè)置SS值為一個(gè)新的隨機(jī)數(shù),并提交表單給后臺(tái)繼續(xù)處理。
[0034]步驟(6):如果ES與SS不相等,說明要么是用戶第二次提交該表單;要么是用戶向服務(wù)器請求了新的含表單的頁面。如果用戶操作都是合法的,則說明用戶存在Sess1n被劫持的風(fēng)險(xiǎn),提醒用戶采取相應(yīng)的安全操作。所謂Sess1n劫持是指第三方通過技術(shù)手段獲取到真實(shí)客戶端和服務(wù)端之間通信的Sess1n ID,以此來冒充真實(shí)客戶端與服務(wù)器交互。
[0035]利用上述本發(fā)明第一實(shí)施方式的基于Web的安全的用戶交互方法,能夠有效防止用戶使用瀏覽器回退(前進(jìn))功能對同一頁面重復(fù)提交,而且還能夠有效防止Sess1n被劫持的風(fēng)險(xiǎn)。
[0036]第二實(shí)施方式
圖2是本發(fā)明第二實(shí)施方式的基于Web的安全的用戶交互方法的步序圖。
[0037]
步驟(1):瀏覽器A (對應(yīng)于權(quán)利要求書中的“第一瀏覽器”)發(fā)送頁面訪問請求到Web應(yīng)用。
[0038]步驟(2):ffeb應(yīng)用接收到請求后,在用戶Sess1n中設(shè)置變量SS (對應(yīng)于權(quán)利要求書中的“第一變量SS”)的值為任意隨機(jī)數(shù),這里設(shè)置為SS = 2568。并且,動(dòng)態(tài)生成用戶請求的頁面,該頁面中包含隱藏元素ES (對應(yīng)于權(quán)利要求書中的“第一隱藏元素ES”),其值等于Sess1n中SS的值,即在這里設(shè)置為SS=ES=2568。
[0039]步驟(3):瀏覽器B (對應(yīng)于權(quán)利要求書中的“第二瀏覽器”)發(fā)送頁面訪問請求到Web應(yīng)用。
[0040]步驟(4):ffeb應(yīng)用接收到請求后,在用戶Sess1n中設(shè)置變量SS (對應(yīng)于權(quán)利要求書中的“第二變量SS”)的值為任意隨機(jī)數(shù),這里設(shè)置為SS = 4456。并且,動(dòng)態(tài)生成用戶請求的頁面,該頁面中包含隱藏元素ES (對應(yīng)于權(quán)利要求書中的“第二隱藏元素ES”),其值等于Sess1n中SS的值,即在這里設(shè)置為SS=ES=4456。
[0041]步驟(5):瀏覽器A接收并顯示用戶請求的頁面,用戶填寫完成頁面包含的表單A(對應(yīng)于權(quán)利要求書中的“第一表單”)后,提交給Web應(yīng)用,同時(shí)ES=2568的值也被提交。
[0042]步驟(6):Web應(yīng)用通過Sess1n Filter攔截用戶提交表單的請求,并驗(yàn)證表單A中的元素ES=2568和Sess1n中的變量SS=4456是否相等。
[0043]步驟(7):由于元素ES=2568和Sess1n中的變量SS=4456不相等,驗(yàn)證瀏覽器A提交的請求不通過,并提示用戶操作存在風(fēng)險(xiǎn),重置SS為另一隨機(jī)數(shù),這里重置為SS=2564
步驟(8):瀏覽器B接收并顯示用戶請求的頁面,用戶填寫完成頁面包含的表單B后,提交給Web應(yīng)用,同時(shí)ES=4456的值也被提交。
[0044]步驟(9):Web應(yīng)用通過Sess1n Filter攔截用戶提交表單的請求,并驗(yàn)證表單B中的元素ES=4456和Sess1n中的變量SS=2564是否相等。
[0045]步驟(10):由于元素ES=4456和Sess1n中的變量SS=2564不相等,因此驗(yàn)證瀏覽器B提交的請求不通過,并提示用戶操作存在風(fēng)險(xiǎn)。
[0046]根據(jù)本發(fā)明第二實(shí)施方式的基于Web的安全的用戶交互方法,能夠有效防止用戶同時(shí)打開多個(gè)瀏覽器頁面通過共享Sess1nID,進(jìn)行多頁面同時(shí)操作,并且還能夠即使發(fā)現(xiàn)會(huì)話劫持,提醒用戶采取響應(yīng)的安全措施。
[0047]以上例子主要說明了本發(fā)明的基于Web的安全的用戶交互方法。盡管只對其中一些本發(fā)明的【具體實(shí)施方式】進(jìn)行了描述,但是本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)了解,本發(fā)明可以在不偏離其主旨與范圍內(nèi)以許多其他的形式實(shí)施。因此,所展示的例子與實(shí)施方式被視為示意性的而非限制性的,在不脫離如所附各權(quán)利要求所定義的本發(fā)明精神及范圍的情況下,本發(fā)明可能涵蓋各種的修改與替換。
【權(quán)利要求】
1.一種基于的安全的用戶交互方法,是在瀏覽器和應(yīng)用之間進(jìn)行交互數(shù)據(jù)處理的方法,其特征在于,包括下述步驟: 訪問請求步驟,瀏覽器發(fā)送頁面訪問請求到166應(yīng)用; 初始設(shè)置步驟,^應(yīng)用接收到該頁面訪問請求后,在用戶36881011中設(shè)置變量33的值并且動(dòng)態(tài)生成用戶請求的頁面,其中,所述頁面包含隱藏元素£3并且置所述隱藏元素£3的值等于變量33的值; 表單提交步驟,瀏覽器接收并顯示從1613應(yīng)用返回的用戶請求頁面,在由用戶填寫所述頁面包含的表單之后提交至166應(yīng)用;以及 校驗(yàn)步驟,應(yīng)用攔截用戶提交表單的請求并且驗(yàn)證表單中的隱藏元素£3和86881011中的變量33是否相等,僅在隱藏元素£3和36881011中的變量33相等的情況下通過校驗(yàn)。
2.如權(quán)利要求1所述的基于的安全的用戶交互方法,其特征在于, 在所述校驗(yàn)步驟中,在通過校驗(yàn)的情況下,設(shè)置36881011中的變量33為一個(gè)新值。
3.如權(quán)利要求1所述的基于的安全的用戶交互方法,其特征在于, 在所述校驗(yàn)步驟中,如果隱藏元素£3和368810??!中的變量33不相等的情況下則不通過校驗(yàn)。
4.如權(quán)利要求1所述的基于的安全的用戶交互方法,其特征在于, 在所述校驗(yàn)步驟中,如果隱藏元素£3和368810?。≈械淖兞?3不相等的情況下則不通過校驗(yàn),提示用戶向服務(wù)器請求了新的含表單的頁面;或者,如果用戶操作都是合法的情況下,則提示用戶存在36881011被劫持的風(fēng)險(xiǎn)。
5.如權(quán)利要求1所述的基于16)3的安全的用戶交互方法,其特征在于, 在所述初始設(shè)置步驟中,設(shè)置變量33為任意隨機(jī)數(shù)。
6.如權(quán)利要求1所述的基于16)3的安全的用戶交互方法,其特征在于, 在所述校驗(yàn)步驟,1613應(yīng)用通過會(huì)話過濾器攔截用戶提交表單的請求。
7.一種基于的安全的用戶交互方法,是多個(gè)瀏覽器和應(yīng)用之間進(jìn)行交互數(shù)據(jù)處理的方法,其特征在于,包括下述步驟: 第一訪問請求步驟,第一瀏覽器發(fā)送第一頁面訪問請求到166應(yīng)用; 第一初始設(shè)置步驟,1613應(yīng)用接收到該第一頁面訪問請求后,在用戶368810!!中設(shè)置第一變量33的值并且動(dòng)態(tài)生成第一用戶請求頁面,其中,所述頁面包含第一隱藏元素£3并且置所述第一隱藏元素£3的值等于第一變量33的值; 第二訪問請求步驟,第二瀏覽器發(fā)送第二頁面訪問請求到166應(yīng)用; 第二初始設(shè)置步驟,1613應(yīng)用接收到該第二頁面訪問請求后,在用戶368810!!中設(shè)置第二變量33的值并且動(dòng)態(tài)生成用戶請求的頁面,其中,所述頁面包含第二隱藏元素£3并且置所述第二隱藏元素£3的值等于第二變量33的值; 第一表單提交步驟,第一瀏覽器接收并顯示從166應(yīng)用返回的第一用戶請求頁面,在由用戶填寫所述頁面包含的第一表單之后提交至應(yīng)用; 第一校驗(yàn)步驟,1613應(yīng)用攔截用戶提交的第一表單的請求并且驗(yàn)證第一表單中的第一隱藏元素£3和36881011中的第二變量33是否相等,僅在第一隱藏元素£3和36881011中的第二變量33相等的情況下通過校驗(yàn),而如果第一隱藏元素£3和36881011中的第二變量33不相等的情況下,重置第一變量33的值; 第二表單提交步驟,第二瀏覽器接收并顯示從166應(yīng)用返回的第二用戶請求頁面,在由用戶填寫所述頁面包含的第二表單之后提交至應(yīng)用;以及 第二校驗(yàn)步驟,1613應(yīng)用攔截用戶提交的第二表單的請求并且驗(yàn)證第二表單中的第二隱藏元素£3和36881011中的第一變量33是否相等,僅在第二隱藏元素£3和36881011中的第一變量33相等的情況下通過校驗(yàn),而如果第二隱藏元素£3和36881011中的第一變量33不相等的情況下不通過驗(yàn)證。
8.如權(quán)利要求7所述的基于的安全的用戶交互方法,其特征在于, 在所述第一校驗(yàn)步驟中,如果第一隱藏元素£3和36881011中的第二變量33不相等的情況下則不通過校驗(yàn),提示用于操作存在風(fēng)險(xiǎn); 在所述第二校驗(yàn)步驟中,如果第二隱藏元素£3和368810!!中的第一變量33不相等的情況下則不通過校驗(yàn),并且提示用于操作存在風(fēng)險(xiǎn)。
9.如權(quán)利要求7所述的基于的安全的用戶交互方法,其特征在于, 在所述第一初始設(shè)置步驟中,設(shè)置第一變量33為任意隨機(jī)數(shù), 在所述第二初始設(shè)置步驟中,設(shè)置第二變量33為任意隨機(jī)數(shù)。
10.如權(quán)利要求7所述的基于的安全的用戶交互方法,其特征在于, 在所述第一校驗(yàn)步驟,1613應(yīng)用通過會(huì)話過濾器攔截用戶提交表單的請求, 在所述第二校驗(yàn)步驟,1613應(yīng)用通過會(huì)話過濾器攔截用戶提交表單的請求。
【文檔編號】H04L29/06GK104346564SQ201310332955
【公開日】2015年2月11日 申請日期:2013年8月2日 優(yōu)先權(quán)日:2013年8月2日
【發(fā)明者】唐真, 陳斌, 李偉, 湯茂安, 周繼恩 申請人:中國銀聯(lián)股份有限公司