关于如何防止重复签到的技术探讨

标签: 技术 探讨 | 发表时间:2016-04-13 23:10 | 作者:labreeze
出处:http://www.iteye.com

    

    问题:

    最近工作中遇到一个签到的问题,其实说来这并不是一个高并发的问题,也并不是CSRF伪造请求的问题,但是跟这两点有点类似,总结来说是针对用户防止短时间内重复刷请求的问题啦,根本原因其实是单用户的并发问题,那么如何实现呢?

 

    解答: 

   思路一,CSRF问题我们怎么解决呢,一般是用时间戳,Appkey,AppSecret来生成token,过了预定的时间这个请求就不能用了。如果这种策略用在解决这个问题上肯定是行不通的,因为一般的时间戳过期时间肯定是以分钟为单位的,而签到一般是秒级单位的,一秒内可以生成多次签到请求。

 

   思路二,搞一个ConcurrentHashMap,来控制用户的访问。

   

 Object signObj = concurrentHashMap.get("username");
 if(null == signObj) {
     signObj = concurrentHashMap.putIfAbsent("username", new Object());
         if(null != signObj) {
             doSign();
             concurrentHashMap.remove("username");
         }
 }

 

   思路三,目前的实现是Cache来实现的,思路其实差不多,可能cache会快一点点和设置超时时间吧。

   

//防止重复处理, 如果有数据返回false
//即使失败了,一分钟内也不能再重试请求了
boolean succ = setCacheDataIfNotExist(accountId + 
                      "-" + sourceType, accountId + "|" + sourceType, 60 * 1000);
if(!succ){
   LogConstant.runLog.info("User sign repeatly! accountId : " + accountId + " ip : " + ip + " sourceType: " + sourceType);
   return -1;
}
dosign();

 

 

 

 

 



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [技术 探讨] 推荐:

Java实现二维码技术探讨。

- - CSDN博客研发管理推荐文章
Java生成二维码方法有三种:. 1: 使用SwetakeQRCode在Java项目中生成二维码 . http://swetake.com/qr/ 下载地址 . 或着http://sourceforge.jp/projects/qrcode/downloads/28391/qrcode.zip . 这个是日本人写的,生成的是我们常见的方形的二维码 .

苹果探讨E-ink/LCD混合显示技术

- Hafid - Solidot
根据最近递交的专利申请,苹果正在探讨在iPhone、iPad和iPod touch上集成E-ink显示技术的方法. E-ink/LCD混合系统将允许在不同的光照条件下显示清晰的文本,同时又能保持全彩色和视频播放等功能,结合E-ink和LCD的优点于一身. 苹果的技术与Pixel的Qi混合E-ink技术有些类似,但要更先进.

关于 Dropbox 共享文件夹安全性的技术探讨

- 星空 - 同步控
# 感谢读者 plusium 这篇很有技术含量的投稿,原载于他的博客. 本文将从纯技术的角度,分析一下热门的云存储同步工具 Dropbox 共享文件夹的权限设置及其安全性,即在已经公开了某一文件夹链接的情况下,其他非公开文件夹的安全性. 这里以首次安装后系统自动生成的 Photos 文件夹为例. 当然,类似“如果这么担心安全性的话,就不要往 Dropbox 上放啊”这样的话,不用说我也知道.

关于如何防止重复签到的技术探讨

- - 企业架构 - ITeye博客
    最近工作中遇到一个签到的问题,其实说来这并不是一个高并发的问题,也并不是CSRF伪造请求的问题,但是跟这两点有点类似,总结来说是针对用户防止短时间内重复刷请求的问题啦,根本原因其实是单用户的并发问题,那么如何实现呢.    思路一,CSRF问题我们怎么解决呢,一般是用时间戳,Appkey,AppSecret来生成token,过了预定的时间这个请求就不能用了.

Hadoop版本选择探讨

- - 董的博客
Dong | 新浪微博: 西成懂 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及 版权声明. 网址: http://dongxicheng.org/mapreduce-nextgen/how-to-select-hadoop-versions/. 由于Hadoop版本混乱多变,因此,Hadoop的版本选择问题一直令很多初级用户苦恼.

卡片式设计探讨

- - 盒子UI
生活中我们会接触到各式各样的卡片. 比如直截了当的扑克,一个图案,一个文字,很清晰传达出这张卡片所代表的含义.        又比如名片,小小的卡片上需要短时间让一个陌生人认识你,需要提炼哪些信息来实现:姓名,电话,职位,公司等.       卡片作为普遍使用的信息传达的承载样式,它具有以下这些特点:.

探讨对称性交互应用

- Draven - 所有文章 - UCD大社区
在界面设计中,对称性的信息呈现方式非常普遍,信息等价并且均匀分布在规则的几何图形周边能带来和谐的比例与平衡. 在交互设计过程中,让用户的操作流也以对称性的方式完成,我们称之为对称性交互(Symmetry of Interaction). 比如iPhone手机的开关机过程,都是以如下流程进行:. 开关机作为手机常用的一套相关操作,其设计思路也采纳了对称性交互原则,让两者遵循同样的流程进行,很容易理解和学习.

关于支付流程的探讨

- susanna.fang - 互联网的那点事
一直很奇怪的一点是:类似团购等模式最近越来越火,关于团购行为的分析文章也很多. 但是当我网上搜索关于团购网站支付流程等相关的文章时,竟然没有任何类似的文章,不得以本人亲自研究了一下,由此写下了关于团购支付流程的这篇文章. 本人没有做过相关的支付流程,也并不确认每家网站的做法一致,纯属抛砖引玉,有考虑不详敬请赐教.

切客(Checker)Check in核心价值探讨

- 壮壮爱 - 天涯海阁-Web2.0Share
前一阵去北京参加了2010年中国首届切客大会,在大会上作了《切客(Check in)核心价值探讨》的分享,现将分享主要内容和大家分享:). 这次分享的《切客(Check in)核心价值探讨》主要分享了我对于切客,LBS提供商和商家三个LBS服务中重要角色使用LBS服务的核心驱动或者商业价值. 切客通过LBS服务进行签到,分享自己的位置,LBS服务为商家提供营销的平台,同时商家也为活跃的切客提供一些折扣或者其他方式的奖励,这三者围绕地理位置着一个元素很紧密的结合在一起.

iphone Web App 导航设计探讨

- Vingel - 互联网的那点事
最近在做iphone端Web App的项目. 由于产品形式新颖,技术环境不成熟,公司给与了较宽松的研发时间. 在一个月的交互设计阶段,每个环节都得到多次讨论推敲,我从中感悟颇多. 导航系统的设计是一个比较典型的点,拿出来与大家分享讨论一下. iphone Native App较常见的导航如下图所示:.