[發明專利]一種防止頁面重復提交的方法在審
| 申請號: | 201710740130.2 | 申請日: | 2017-08-25 |
| 公開(公告)號: | CN107872507A | 公開(公告)日: | 2018-04-03 |
| 發明(設計)人: | 王承明 | 申請(專利權)人: | 成都萌想科技有限責任公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08;G06F17/30 |
| 代理公司: | 北京七夏專利代理事務所(普通合伙)11632 | 代理人: | 王彥麗 |
| 地址: | 610094 四川省成都市高*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 防止 頁面 重復 提交 方法 | ||
技術領域
本發明涉及計算機應用技術領域,具體的講涉及一種防止頁面重復提交的方法。
背景技術
現有技術方案中采用了Token(令牌)機制,原理如下:當訪問一個請求的時候,底層框架將一個令牌(所謂令牌就是一個隨機生成的一個字符串)放入會話中存儲起來,然后再轉向到頁面,頁面中html:form標簽將會話中的令牌保存到form表單中一個隱藏的input域中,等用戶輸入完數據,然后點擊保存執行保存請求的時候,底層框架會在業務程序之前判斷會話中的令牌和客戶端傳遞過來的隱藏input域中的令牌是否相等,如果相等,則更新會話中的令牌,并去執行業務程序;當系統反應速度比較慢,用戶可能會點擊第二次或者用戶點擊瀏覽器的回退,然后再點擊提交,或者直接刷新頁面,提交執行,在上面這幾種情況下,由于點擊第一次后,會話中的令牌已經更新,因此會話中的令牌和隱藏input域中的令牌就不相等,則是重復提交,返回一個錯誤頁面提示重復提交。
因此這種方案造成的不足是:
1、一個html中如果有多個form表單,而且需要同時提交時,第二個要提交的form將不能提交,因為當提交了第一個form后,會話中的令牌將被更新,那么第二個form提交時就會由于會話中的令牌的改變而不能提交。
2、當頁面中有多個按鈕,比如有保存、返回等按鈕的時候,但點擊保存后,再點擊返回,同樣提示重復提交的問題,也就是說,重復提交的控制是整個頁面,而不是控制到一個cmd。
3、當頁面有iframe(不管是否隱藏)的時候,iframe執行的cmd會將會話中的令牌重寫,這樣造成iframe所在的主頁不能提交。
4、當采用一個頁面多個tab頁顯示內容時候,用戶打開多個頁面,這樣新打開的頁面將會把會話中的令牌修改,造成以前打開的頁面不能提交。
發明內容
因此本發明提出一種防止頁面重復提交的方法,用來解決上述背景技術中的不足。
本發明的技術方案是這樣實現的:一種防止頁面重復提交的方法,修改傳統的Token令牌機制,采用按組分配的token對象,每個token對象對應1個url請求,所有token對象構成一個token對象組,然后通過token的信號量命中累計,與1進行對比,具體步驟如下:
1)在html各個form需要的位置,產生一個唯一的token,每個頁面由多個form的token構成一個組;
2)在提交時,前端將token和token組傳遞給后臺,后臺通過組中存放的每個form的組進行命中存放;
3)比對后每個token對應一個令牌,并將令牌放入當前頁面對應的這個令牌組中;
4)后端判斷重復提交的時候,首先取出對應這個頁面的token組,然后判斷組中每個對象和當前請求的token對象的命中次數。
在基于上述一種防止頁面重復提交的方法的一個實施例中,所述步驟4)中,判斷組中每個對象和當前請求的token對象的命中次數,當判斷信號量大于1則為重復提交,終止操作返回錯誤信息提示,當判斷信號量小于1時,執行業務程序,檢測完畢。
由于每個form會產生一個令牌,并將它們都放入到會話token組中,這個不會出現令牌被修改的問題。可以解決原方案中的,一個html中如果有多個form,而且需要同時提交時,第二個要提交的form將不能提交,因為當提交了第一個form后,會話中的令牌將被加1,那么第二個form提交時就會由于會話中的令牌的改變而不能提交的問題。
由于一個令牌對應一個請求,這樣就解決了原方案中的,當頁面中有多個按鈕,比如有保存、返回等按鈕的時候,但點擊保存后,再點擊返回,同樣提示重復提交的問題,也就是說,重復提交的控制是整個頁面,而不是控制到一個cmd的問題。
由于會話中可以存放無限制個數的token組,每個token組中可以存放無限制個數的令牌,這就解決了原來方案中的當頁面有iframe(不管是否隱藏)的時候,iframe執行的cmd會將會話中的令牌重寫,這樣造成iframe所在的主頁不能提交的問題和當采用一個頁面多個tab頁顯示內容時候,用戶打開多個頁面,這樣新打開的頁面將會把會話中的令牌修改,造成以前打開的頁面不能提交的問題。
通過上述公開內容,本發明的有益效果為:本發明通過form產生令牌,不會被修改,同時一個令牌對應一個請求,重復提交的控制是整個頁面,可以存放的無限制個數的token組,改方法簡單高效,能夠有效地防止頁面重復提交。
具體實施方式
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于成都萌想科技有限責任公司,未經成都萌想科技有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710740130.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種基于實時消息的廣播方法
- 下一篇:用于車輛共享系統的關系管理





