简单的PHP实现网络刷投票程序
发布:smiling 来源: PHP粉丝网 添加日期:2015-04-08 13:45:39 浏览: 评论:0
PHP投票程序在做活动时会用到了,我们今天就为各位朋友分享一个PHP投票程序,有需要了解的同学不防一起来看看吧.
PHP刷投票,让你高居榜首,本文附上刷票方法和防御策略.
案例为一个半月以前,没有及时放出原因有二,一是因为博客域名备案没有下来,没有心情写东西,二是最主要的,及时放出对案例网站有严重的损害,不是我等IT人应有的.
Ps:刷票有风险,使用需谨慎,本文谨做学习研究讨论之用,不可用作不正当用途!
本文为本博客的处女之作,题材源于近日一朋友要求,是因为她的姐姐参加了一个书法比赛,问我能不能在网站上刷投票,作为刚刚出道一年的小菜鸟,我很惶恐,一年前刚刚接触PHP的时候,完全不知道做,现在第一反应就是Curl.
废话不多说了,直接上代码:
- <?php
- header('Content-type: text/html; charset=gb2312');
- //随机生成IP
- $ip1 = rand(101, 255).'.';
- $ip2 = rand(1, 255).'.';
- $ip3 = rand(1, 255).'.';
- $ip4 = rand(1, 255);
- $ip = $ip1 . $ip2 . $ip3 . $ip4;
- $clientIp = 'CLIENT-IP:'.$ip;
- $xforwarded = 'X-FORWARDED-FOR:'.$ip;
- //设置目标和来源
- $url = 'http://www.dunhuangwomen.org.cn/vote/Vote.asp?id=67';
- $referer = 'http://www.dunhuangwomen.org.cn/vote/list.asp?id=2';
- //Curl //开源软件:phpfensi.com
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url); //目标
- curl_setopt($ch, CURLOPT_HTTPHEADER, array($xforwarded, $clientIp)); //构造IP
- curl_setopt($ch, CURLOPT_REFERER, $referer); //来源
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_HEADER, 0);
- $ret = curl_exec($ch);
- curl_close($ch);
- echo $ret;
- ?>
好,来分析一下.
1、仿造IP,网站有限制一个IP在一天只可以投一次.
2、填写来源,网站会判断请求的来源是否合法路径.
其他就是Curl的常规了选项了.
如何防治?
本人才疏学浅,仅作跑砖引玉.
1、限制IP:本文已经破解
2、限制来源:本文已经破解
3、验证码:作为最反人类的发明之一,可以使用这个拥有高大上的名字的全自动区分计算机和人类的图灵测试.可用Opencv。
4、记录MAC地址
理论上每块网卡都有一个唯一的MAC地址,如果更改可能引起冲突而无法上网,目前也可以用软件修改.
5、注册会员
虽说仍然可以突破验证码,Curl填写参数然后POST过去,但是门槛毕竟高了一丁点,还是忽略吧.
6、手机
投票时输入手机号和短信验证码,成本高,单位不愿意,用户发送某某指令到某某,用户自掏腰包,用户不愿意,目前来说,只有验证码,手机并且验证手机的有效性是最好的防治措施.
Tags: PHP网络刷投票 PHP刷投票
- 上一篇:PHP中动态特性学习笔记
- 下一篇:php 二叉树遍历算法与例子
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)