刷票行为
,一直以来都是个难题,无法从根本上防止。
但是我们可以尽量减少刷票的伤害,比如:通过人为增加的逻辑限制。
基于 PHP
,下面介绍防刷票的一些技巧:
1、HTTP_REFERER
: 校验 $_SERVER['HTTP_REFERER']
。可伪造,使用 CURL
。
curl_setopt($ch, CURLOPT_REFERER, 'HTTP://www.baidu.com');(攻击手段)
2、IP限制
:加上 IP
投票限制。可伪造,使用 CURL
。
$ip = ***.***.***.***;
$header = array(
"CLIENT-IP:{$ip}",
"X-FORWARDED-FOR:{$ip}",
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);(攻击手段)
3、User-Agent
:校验 $_SERVER['HTTP_USER_AGENT']
。可伪造,使用 CURL
。
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.0)");(攻击手段)
4、验证码
:采用非常复杂的验证码,可以防止一些菜鸟攻击者。
a:但是专业刷票机可以攻破。如果不用验证码,投票基本就歇菜了。
b:验证码获取方式,采用异步加载,即点击输入框时,才去请求。
c:投票成功后,删除验证码的 Session。
5、登录
:用户必须登录才能投票。
a:可以攻破,写程序不断注册新用户,然后用来投票。(攻击手段)
b:指定大于某个 UID 的用户,或者某段时间内活跃的用户,才能进行投票。(预防对策)
6、限时投票
:投票程序,只在某个时间段内开放。否则,对方半夜刷票,你咋办?
a:从 早 8 点 至 晚 23 点。(预防对策)
7、投票间隔
:用户投票后,需要隔多长时间才能继续投。
a:很多投票站点基本上都有这个限制,但是对于更改 IP的攻击,就没办法了。
b:针对 UID 限制,可以有效防止攻击,但是可以使用批量注册马甲用户。
8、投票结果展示
:延迟展示,友好展示。
a:页面上投票,JS 立马加1,但是刷新页面,不一定立马展示最新投票结果。
b:返回状态给页面(感谢您的投票!或者 投票成功!至于有没有成功,另说了!)
9、补票逻辑
:常见于一些软件评选之类的投票。
a:有时候软件厂商会为了让自己的票数高一点,会私下给活动举办商 $,后台进行补票。
b:后台跑脚本,采用 IP 库,缓慢平滑的增加票数。
10、扣量逻辑
:常见于一些软件评选之类的投票。
a:这是个杀手锏,后台跑脚本实时监控异常增长(刷票)的项,然后实施扣量逻辑。
b:即对于这个项,投 10 票才算一票。
11、Cookie
:常用的手段。比较低级。
a:投票后,在客户端写入 Cookie,下次投票时判断 Cookie 是否存在。
b:但是,这种方式非常容易攻破,因为 Cookie 可删除。
12、加密选项 ID
:对一些投票选项的ID,进行随机加密。
a:加密算法,加Salt,并且设置有效时间,比如5分钟内。
b:服务器端进行解密并且验证。
13、人工刷票
:没办法防。。
a:雇佣了一批水军,进行刷票,这个真没辙,人家确实是花了血本的。
转自:http://segmentfault.com/a/1190000000656336
相关推荐
前端只是一些js框架吗?只是画页面吗?只是UI吗?你觉得你是大牛吗?前瞻思考,对于没有目标的码农们,可以找点刺激。
前端团队管理 前端基础架构的实践和思考 共22页.pdf
支付宝前端分离的思考与实践,这个是他们当时的PPT分享
整理前端各种宝典内容整理前端各种宝典内容
关于前端无法播放RTSP视频流的实现方案
各种前端开发时所要用到的手册,如css3,html5,javascript,jQuery,bootstrap,mysql,zepto等等
《前端面试宝典》是一本由前端工程师创作的书籍,主要内容是关于前端面试相关的知识点和经验分享1。 《前端面试宝典》主要内容包括: 前端基础知识,如HTML、CSS、JavaScript等。 前端进阶知识,如ES6、HTTP协议、...
资源包括一些数学方面(思考的乐趣,程序员的数学,具体数学)和 js高程
前端展示广告各种样式,公告轮播样式,内含十多种方式
里面有一些你可能会用到的特殊符号的,这些字符属于unicode字符集,你的文档需要声明为”utf-8
前端html爱心源码前端html爱心源码前端html爱心源码前端html爱心源码前端html爱心源码前端html爱心源码前端html爱心源码前端html爱心源码前端html爱心源码前端html爱心源码前端html爱心源码前端html爱心源码前端html...
纯前端发送邮箱代码实现 HTML+CSS纯前端发送邮箱代码实现 HTML+CSS纯前端发送邮箱代码实现 HTML+CSS纯前端发送邮箱代码实现 HTML+CSS纯前端发送邮箱代码实现 HTML+CSS纯前端发送邮箱代码实现 HTML+CSS纯前端发送邮箱...
web前端技术方案web前端技术方案
Html关于前端学习
关于前端面试题
前端项目源码 前端项目源码 前端项目源码
web前端简历web前端简历web前端简历web前端简历web前端简历web前端简历web前端简历web前端简历web前端简历web前端简历web前端简历
HTML个人博客前端模板,各种风格,168套任意选,大量减轻敲代码时间,高效开发个人博客网站,总有一款适合你。
各种Tab效果,需要的请拿走,适合各种应用场景,PC端网页或移动应用