关于防刷票的一些问题

简介: 关于防刷票的一些问题   刷票行为,一直以来都是个难题,无法从根本上防止。 但是我们可以尽量减少刷票的伤害,比如:通过人为增加的逻辑限制。 基于 PHP,下面介绍防刷票的一些技巧: 1、使用CURL进行信息伪造 1 2 3 4 5 6 7 8 ...

关于防刷票的一些问题

 

刷票行为,一直以来都是个难题,无法从根本上防止。

但是我们可以尽量减少刷票的伤害,比如:通过人为增加的逻辑限制。

基于 PHP,下面介绍防刷票的一些技巧:

1、使用CURL进行信息伪造

1
2
3
4
5
6
7
8
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,  "http://localhost/2.php" );
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'X-FORWARDED-FOR:8.8.8.8' 'CLIENT-IP:8.8.8.8' ));
curl_setopt($ch, CURLOPT_REFERER,  "http://localhost/ " );
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT,  "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.0)" );
$ out  = curl_exec($ch); 
curl_close($ch);

2、验证码:采用非常复杂的验证码

确切的说验证码的出现不是针对于人,而是针对于机器。通过复杂度和识别难易度的控制来阻拦掉一部分刷票机,从而减少刷票的发生。但随着软件技术、识别技术的发展越来越多的验证码面对着先进的刷票软件也失去了其防范的作用、但是专业刷票机可以攻破。如果不用验证码,投票基本就歇菜了,验证码获取方式,采用异步加载,即点击输入框时,才去请求,投票成功后,删除验证码的 Session

3、限时投票

比如:从早8点至晚23 点

4、设置投票间隔

用户投票后,需要隔多长时间才能继续投。

很多投票站点基本上都有这个限制,但是对于更改 IP的攻击,就没办法了

5、投票结果展示:延迟展示,友好展示

页面上投票,JS 立马加1,但是刷新页面,不一定立马展示最新投票结果,返回状态给页面(感谢您的投票!或者 投票成功!至于有没有成功,另说了!)

6、扣量逻辑:常见于一些软件评选之类的投票

  • 这是个杀手锏,后台跑脚本实时监控异常增长(刷票)的项,然后实施扣量逻辑
  • 即对于这个项,投 10 票才算一票

7、Cookie:常用的手段。比较低级

  • 投票后,在客户端写入 Cookie,下次投票时判断 Cookie 是否存在
  • 但是,这种方式非常容易攻破,因为 Cookie 可删除

8、加密选项 ID:对一些投票选项的ID,进行随机加密

  • 加密算法,加Salt,并且设置有效时间,比如5分钟内
  • 服务器端进行解密并且验证

9、nginx限制链接数

  • ngx_http_limit_conn_module
  • ngx_http_limit_req_module
  • nginx_limit_speed_module

可以使用这三个模块来限制,不过这不是一个好的解决方法

10、iptables限制

1
2
3
4
/sbin/iptables -A INPUT -p tcp --dport 80 --syn -m recent --name webpool --rcheck --seconds 60 --hitcount 10 -j DROP
/sbin/iptables -A INPUT -p tcp --dport 80 --syn -m recent --name webpool -- set  -j ACCEPT
/sbin/iptables -t filter -A INPUT -p tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 10 --connlimit-mask
  32 -j REJECT

具体脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/bash
# Date: 2015-09-29
# # Author: cpz@erongtu.com
 
shopt -s -o nounset
export PATH=/usr/bin/:/bin
 
iptables_log= "/tmp/iptables_conf.log"
 
/sbin/iptables -A INPUT -p tcp --dport 80 --syn -m recent --name webpool --rcheck --seconds 60 --hitcount 10 -j DROP
/sbin/iptables -A INPUT -p tcp --dport 80 --syn -m recent --name webpool -- set  -j ACCEPT
/sbin/iptables -t filter -A INPUT -p tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 10 --connlimit-mask 32 -j REJECT
 
while  true  ];  do
 
     #sleep 1
     for  IP  in  `netstat -an | grep -i  ':80 ' |grep  'ESTAB'  | awk  '{print $5}'  | cut -d : -f 1 | sort | uniq -c | awk  '{if($1 > 30 && $2!="127.0.0.1" ) {print $2}}' `
     do
         /sbin/iptables -L -n  | grep  $IP >/dev/ null  || /sbin/iptables -A INPUT -p tcp --dport 80 -s $IP -j DROP
         echo  "/sbin/iptables -A INPUT -p tcp  -s $IP -j DROP"  >> ${iptables_log}
     done
done

 

目录
相关文章
|
11月前
|
弹性计算 安全 API
阿里云实名认证接口怎么使用的
1.阿里云实名认证接口怎么使用的,1、登录阿里云控制台 2、单击您的会员名(在页面右上角),进入账号管理页面 3、在左侧导航栏中,单击 实名认证 4、在 实名认证 页面,选择认证类型为 个人,再单击 确定 5、单击 个人支付宝认证 栏中 立即认证 按钮。
阿里云实名认证接口怎么使用的
|
JavaScript
Vue中wangeditor工具栏失效问题
莫名其妙,Vue项目中,wangeditor部分工具栏失效了。 点了之后也不报错,但是毫无反应,去官网和百度查了半天,无后果。 最后找了半天,发现是调整了wangeditor默认样式导致的,尝试许久,最后以下样式可以不影响工具栏使用
929 0
|
机器学习/深度学习 人工智能 算法
CV之Face Change:基于人工智能实现国内众多一线美女明星换脸(基于Face++输出4*106个特征点定位+融合代码、deepfake技术)
CV之Face Change:基于人工智能实现国内众多一线美女明星换脸(基于Face++输出4*106个特征点定位+融合代码、deepfake技术)
CV之Face Change:基于人工智能实现国内众多一线美女明星换脸(基于Face++输出4*106个特征点定位+融合代码、deepfake技术)
|
12月前
|
NoSQL 安全 Java
优雅的接口防刷处理方案 下
优雅的接口防刷处理方案 下
Yii2.0投票如何防止用户刷票?具体步骤是怎样的?底层原理是什么?
Yii2.0投票如何防止用户刷票?具体步骤是怎样的?底层原理是什么?
|
设计模式 SQL 开发框架
Yii2.0框架是什么?它有哪些主要特点和优点?
Yii2.0框架是什么?它有哪些主要特点和优点?
240 0
|
安全 物联网 开发工具
第八期| 藏在短视频背后的黑灰产:批量刷票、虚假流量
顶象防御云业务安全情报BSL-2022-a3c11号显示,某短视频平台部分Up主在中秋节平台活动期间借助黑灰产工具分设备牧场、代理IP、黑卡、自动化程序等进行批量刷票,严重影响其他用户参与的积极性,给平台的带来大额的资产损失和大量虚假用户,不仅严重破坏了平台生态,而且使得刷票风气盛行,平台活动公平性被质疑,信誉受损。
198 0
第八期| 藏在短视频背后的黑灰产:批量刷票、虚假流量
|
网络协议 安全 网络安全
|
存储 NoSQL 关系型数据库
Redis 面霸篇:高频问题横扫核心知识点 (一)
从高频面试问题跟大家一起横扫 Redis 核心知识点,从根本上理解 Redis ,不做八股文的工具人,做扭转乾坤的大神。
177 0
Redis 面霸篇:高频问题横扫核心知识点 (一)
|
云安全 弹性计算 监控
企业上云等保三级最佳实践
本篇内容分享了企业上云等保三级最佳实践。
企业上云等保三级最佳实践