php 防止注册机,如何防止网站被注册机轰炸

之前帮朋友写过一个,他们使用了一个在网上找的验证码生成程序,估计用的人太多了,竟然没防住。我个人比较喜欢JS去解决问题,最终使用本方案之后,就没有再出问题。

#=====================================================================

#= Copyright (c) 2015 猫七(QQ:77068320) =

#= All rights reserverd. =

#=====================================================================

#= TokenCode 防模拟提交程序 类(PHP版本) =

#= 使用说明:http://www.miaoqiyuan.cn/products/tokencode/last.zip =

#= 演示地址:http://www.miaoqiyuan.cn/products/tokencode/ =

#= 使用说明:http://www.miaoqiyuan.cn/p/tokencode =

#= 邮箱地址:mqycn@126.com QQ:77068320 1301425789 =

#=====================================================================

class TokenCode {

public $value, $code ;

public $OperationList;

public function __construct() {

$resultValue = $this -> RandomKey($this -> RandomIntger());

$resultCode = "'" . $resultValue . "'";

$this -> OperationList = Array("+", "-" ,"*");

for( $i = 0 ; $i < $this -> RandomIntger() + 3; $i++){

$op = $this -> RandOperation();

switch($op){

case "+":

case "-":

$random = $this -> RandEquations();

$resultValue .= $random["value"];

$resultCode .= "+(" . $random["code"] . ")";

break;

default:

$random = $this -> RandomKey($this -> RandomIntger());

$resultValue .= $random;

$resultCode .= "+'" . $random . "'";

break;

}

}

$rnd1 = $this -> RandomIntger();

$rnd2 = $this -> RandomIntger() + 8;

$this -> value = substr($resultValue, $rnd1, $rnd2);

$this -> code = "(" . $resultCode . ").substring(" . $rnd1 . "," . ($rnd1 + $rnd2) . ")";

}

private function RandEquations(){

$va = $str = $this -> RandomLong();

$this -> OperationList = Array("+", "-" ,"*");

for( $i = 0 ; $i < $this -> RandomIntger(); $i++){

$op = $this -> RandOperation();

$vb = $this -> RandomLong();

switch($op){

case "+":

$va += $vb;

$str .= "+" . $vb;

break;

case "-":

$va -= $vb;

$str .= "-" . $vb;

break;

case "*":

$va *= $vb;

$str = "(" . $str . ")*" . $vb;

break;

}

}

return Array(

"code" => $str,

"value" => $va

);

}

private function RandOperation(){

return $this -> OperationList[rand() % count($this -> OperationList)];

}

private function RandomIntger(){

return (int)substr(rand(), 1, 1) + 1;

}

private function RandomLong(){

return (int)substr(rand(), 1, 3) + 1;

}

private function RandomKey($len = 10){

return substr(md5(rand()), 1, $len + 5);

}

}

?>

调用方法:

require("TokenCode.php");

$token = new TokenCode();

$tokenValue = $token -> value ;

$tokenCode = $token -> code ;

//代码段

$_SESSION["_TOKENCODE"] = $token -> value ;

//代码段

echo '';

?>

保存好session后,到验证页验证提交的code和验证结果即可,程序改动非常少,只需要js改动一下即可。

#AJAX方式

$.post("/", {mob : $("#mob").val() , token : _TOKENCODE }, function(){ } );

#URL方式

$("#send").click(function(){

if(this.href.indexOf('&token=')==-1){

this.href+='&token=' + _TOKENCODE

};

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
通版|变态版|精装版功能特色与区别: 普通版:基于邀请码设计,同时集成提供目前网络上流行的两种方式来取得邀请码,弹框式和直入式;防注册效果很好,使用也很方便; 变态版:随位置、随颜色、随点击顺序、随插入位置........强大的干扰系统设计,防注册效果没的说,经过多个版本更新,现已很稳定;购买人数最多! 精装版:精装版针对用户注册时的复杂度问题,经过设计,简化了注册流程,同时提高了防注册效果!强烈推荐使用! 功能特色:让注册再也找不到规律,让你的论坛再无广告骚扰!!!这是我们的心愿。 备注: 因其他风格和插件引起的本插件冲突导致无法使用,不在技术支持范围之内。 您是不是经常为论坛有大量广告而发愁?是不是不管你怎么设置验证码、验证问答还是阻挡不了它们?现在不用怕了,超强防注册,利用论坛注册原理 独创的混淆制,坚决杜绝注册,还您一片净土;经测试效果非常理想; 目前市面上有很多防注册广告的产品,但大多效果不好,包括验证码、验证问答等,效果都不是特别理想,本插件独创的混淆功能,可以有效的防止注册;作者已亲自在自己论坛上安装试用,未发现有异常广告了;并且该方法还有提醒功能,让你知道当天注册了多少用户; 混淆功能:系统会根据每次的注册,自动变换注册颜色和正确项目的位置,这些都是随的哟,让注册找不着规律,那么还怕防不了它们吗! 站长朋友: 本人在应用中心发布的收费插件均为出售使用权,售后服务也仅限于对插件现有功能的修复与安装升级指导,不提供修改插件功能的,谢谢合作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值