一种防止数据重复提交的方法和服务器技术

技术编号:16284565 阅读:41 留言:0更新日期:2017-09-24 09:41
本发明专利技术提出一种防止数据重复提交的方法及服务器,其中方法包括:生成当前网页对应的身份标识、令牌(Token)和令牌名(TokenName),保存所述身份标识与TokenName的组合与Token的对应关系;将所述身份标识、Token和TokenName发送至客户端;接收来自客户端的网页数据提交请求,从所述网页数据提交请求中获取身份标识、Token和TokenName;查找是否保存有该身份标识与TokenName的组合所对应的Token,如果是,则判断所述从网页数据提交请求中获取的Token与查找到的Token是否一致,如果一致,则删除所述查找到的Token及其对应的身份标识与TokenName的组合。本发明专利技术能够不依赖于会话(Session)机制实现防止数据重复提交。

Method and server for preventing repeated submission of data

The invention provides a method and server to prevent duplication of data submitted, the method comprises the following steps: identification and token generation corresponding to the current page (Token) and token name (TokenName), the corresponding relationship between preservation of the identity identification in combination with Token and TokenName; the identity of Token, TokenName and sent to the client receiving data from the client; \submit requests access to the identity identification, Token and TokenName in the request from the web page data submission; check whether the combination of the identification and preservation of TokenName corresponding to the Token, if it is, then determine the page from the data submitted to the Token and get the search request to the Token whether if consistent, consistent, combination of identity and TokenName to delete the Token and find the corresponding. The invention can prevent data duplicate submission without relying on the session (Session) mechanism.

【技术实现步骤摘要】

本专利技术涉及Web应用系统
,尤其涉及一种防止数据重复提交的方法和服务器
技术介绍
在当今的Web应用系统中,都会存在一些重要操作,比如提交申请或网银支付。而这些操作都可能会因为网络的延迟、应用系统服务超时或其它原因造成数据重复提交,目前,绝大多数Web应用系统中都会自己开发或采用开源框架实现防止数据重复提交的功能。目前,防止数据重复提交的方法实现方式如下:第一阶段,如图1所示,用户进入网页后,Web应用系统生成每个用户的会话(Session),并生成该Session对应的令牌(Token),保存该Token;同时,Web应用系统将该Token存储在网页信息中,并将该网页信息发送至客户端。第二阶段,如图2所示,用于提交网页时,Web应用系统获取网页中的Token,并获取本地保存的当前Session所对应的Token,判断网页中的Token与当前Session所对应的Token是否一致,如果是,则表明用户是正常提交数据;否则,表明该用户是重复提交数据。可见,现有的防止数据重复提交的方法必须依赖于Session机制;而对于集群部署Web应用系统,大部分采用禁用Session,即使可以使用Session,也必须保证每台机器的Session一致。可见,现有的防止数据重复提交的方法因必须依赖于Session机制而存在一定的使用限制。
技术实现思路
本专利技术提供了一种防止数据重复提交的方法,能够不依赖于Session机制防止数据重复提交。本专利技术还提供了一种防止数据重复提交的服务器,能够不依赖于Session机制防止数据重复提交。本专利技术的技术方案是这样实现的:一种防止数据重复提交的方法,包括:生成当前网页对应的身份标识、令牌(Token)和令牌名(TokenName),保存所述身份标识与TokenName的组合与Token的对应关系;将所述身份标识、Token和TokenName发送至客户端;接收来自客户端的网页数据提交请求,从所述网页数据提交请求中获取身份标识、Token和TokenName;查找是否保存有该身份标识与TokenName的组合所对应的Token,如果是,则判断所述从网页数据提交请求中获取的Token与查找到的Token是否一致,如果一致,则删除所述查找到的Token及其对应的身份标识与TokenName的组合。上述方法中,生成当前网页的身份标识的方式可以为:判断所述当前网页的Cookie中是否保存有当前网页对应的身份标识,如果没有,则生成所述当前网页对应的身份标识,并将所述身份标识保存在当前网页的Cookie中。保存身份标识与TokenName的组合与Token的对应关系方式可以为:将所述身份标识与TokenName作为缓存键值(Key),并将Token作为该缓存Key对应的缓存值(Value)进行保存。将身份标识、Token和TokenName发送至客户端的方式可以为:将所述身份标识携带在当前网页的Cookie中,并将所述当前网页的Cookie发送至客户端;并且,将所述Token和TokenName携带在当前网页的信息中,并将所述当前网页的信息发送至客户端。查找是否保存有该身份标识与TokenName的组合所对应的Token之前可以进一步包括:如果从所述网页数据提交请求中无法获取到身份标识、Token和TokenName中的任意一个,则向所述客户端反馈数据提交失败消息。当查找到没有保存该身份标识与TokenName的组合所对应的Token时,可以向所述客户端反馈数据提交失败消息;当判断出从网页数据提交请求中获取的Token与查找到的Token不一致时,可以向所述客户端反馈数据提交失败消息;删除查找到的Token及其对应的身份标识与TokenName的组合之后可以进一步包括:判断是否删除成功,如果是,则向所述客户端反馈数据提交成功消息;否则,向所述客户端反馈数据提交失败消息。一种防止数据重复提交的服务器,包括:标识生成模块,用于生成当前网页对应的身份标识、Token和TokenName,标识保存模块,用于保存所述身份标识与TokenName的组合与Token的对应关系;标识发送模块,用于将所述身份标识、Token和TokenName发送至客户端;重复提交判断模块,用于接收来自客户端的网页数据提交请求,从所述网页数据提交请求中获取身份标识、Token和TokenName;查找所述标识保存模块中是否保存有该身份标识与TokenName的组合所对应的Token,如果是,则判断所述从网页数据提交请求中获取的Token与查找到的Token是否一致,如果一致,则删除所述查找到的Token及其对应的身份标识与TokenName的组合。上述服务器中,标识生成模块可以判断所述当前网页的Cookie中是否保存有当前网页对应的身份标识,如果没有,则生成所述当前网页对应的身份标识,并将所述身份标识保存在当前网页的Cookie中。标识保存模块保存身份标识与TokenName的组合与Token的对应关系方式可以为:将所述身份标识与TokenName作为缓存Key,并将Token作为该缓存Key对应的缓存Value进行保存。标识发送模块可以将所述身份标识携带在当前网页的Cookie中,并将所述当前网页的Cookie发送至客户端;并且,将所述Token和TokenName携带在当前网页的信息中,并将所述当前网页的信息发送至客户端。重复提交判断模块还可以用于,当从所述网页数据提交请求中无法获取到身份标识、Token和TokenName中的任意一个时,向所述客户端反馈数据提交失败消息。当查找到标识保存模块中没有保存该身份标识与TokenName的组合所对应的Token时,向所述客户端反馈数据提交失败消息;当判断出从网页数据提交请求中获取的Token与查找到的Token不一致时,向所述客户端反馈数据提交失败消息;删除查找到的Token及其对应的身份标识与TokenName的组合之后,进一步判断是否删除成功,如果是,则向所述客户端反馈数据提交成功消息;否则,向所述客户端反馈数据提交失败消息。可见,本专利技术提出的防止数据重复提交的方法和服务器,能够基于Cookie机制和缓存机制实现防止数据重复提交,从而解除了对Session机制的依赖。附图说明图1为现有技术中防止数据重复提交的方法阶段一示意图;本文档来自技高网...
一种防止数据重复提交的方法和服务器

【技术保护点】
一种防止数据重复提交的方法,其特征在于,所述方法包括:生成当前网页对应的身份标识、令牌Token和令牌名TokenName,保存所述身份标识与TokenName的组合与Token的对应关系;将所述身份标识、Token和TokenName发送至客户端;接收来自客户端的网页数据提交请求,从所述网页数据提交请求中获取身份标识、Token和TokenName;查找是否保存有该身份标识与TokenName的组合所对应的Token,如果是,则判断所述从网页数据提交请求中获取的Token与查找到的Token是否一致,如果一致,则删除所述查找到的Token及其对应的身份标识与TokenName的组合。

【技术特征摘要】
1.一种防止数据重复提交的方法,其特征在于,所述方法包括:
生成当前网页对应的身份标识、令牌Token和令牌名TokenName,保存所
述身份标识与TokenName的组合与Token的对应关系;将所述身份标识、Token
和TokenName发送至客户端;
接收来自客户端的网页数据提交请求,从所述网页数据提交请求中获取身
份标识、Token和TokenName;查找是否保存有该身份标识与TokenName的组
合所对应的Token,如果是,则判断所述从网页数据提交请求中获取的Token与
查找到的Token是否一致,如果一致,则删除所述查找到的Token及其对应的
身份标识与TokenName的组合。
2.根据权利要求1所述的方法,其特征在于,所述生成当前网页的身份标
识的方式为:
判断所述当前网页的Cookie中是否保存有当前网页对应的身份标识,如果
没有,则生成所述当前网页对应的身份标识,并将所述身份标识保存在当前网
页的Cookie中。
3.根据权利要求1所述的方法,其特征在于,保存身份标识与TokenName
的组合与Token的对应关系方式为:
将所述身份标识与TokenName作为缓存Key,并将Token作为该缓存Key
对应的缓存Value进行保存。
4.根据权利要求1所述的方法,其特征在于,所述将身份标识、Token和
TokenName发送至客户端的方式为:
将所述身份标识携带在当前网页的Cookie中,并将所述当前网页的Cookie
发送至客户端;
将所述Token和TokenName携带在当前网页的信息中,并将所述当前网页
的信息发送至客户端。
5.根据权利要求1所述的方法,其特征在于,所述查找是否保存有该身份

\t标识与TokenName的组合所对应的Token之前进一步包括:
如果从所述网页数据提交请求中无法获取到身份标识、Token和TokenName
中的任意一个,则向所述客户端反馈数据提交失败消息。
6.根据权利要求1所述的方法,其特征在于,当查找到没有保存该身份标
识与TokenName的组合所对应的Token时,向所述客户端反馈数据提交失败消
息;
当判断出从网页数据提交请求中获取的Token与查找到的Token不一致时,
向所述客户端反馈数据提交失败消息;
所述删除查找到的Token及其对应的身份标识与TokenName的组合之后进
一步包括:判断是否删除成功,如果是,则向所述客户端反馈数据提交成功
消息;否则,向所述客户端反馈数据提交失败消息。
7.一种防止...

【专利技术属性】
技术研发人员:赵天明
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1