Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[转FD]抵御部分暴力营销自动注册机(不使用注册验证码,不需GD) 1.0BYpk0909

[复制链接]
hufanyun 发表于 2005-8-19 23:50:41 | 显示全部楼层 |阅读模式
[hack]抵御部分自动注册机(不使用注册验证码,不需GD) 1.0

hack名称:抵御部分自动注册机
作  者:pk0909
适  用:D2.5Sp1
安装程度:简易
安装需求:本hack以D2.5SP1正式版050401为基础修改
修改文件:include/global.php、register.php、templates/default/register.htm
说  明:
本hack可以抵御部分自动注册用户名之后再自动发表广告帖的软件(仅抵御自动注册)
道高一尺魔高一丈,在此以后这些自动软件也许也会跟着推出能够破解此hack的程序,所以只是暂时抵御,大家觉得有需要的可以试试看,不保证可以完全抵御(偶自己测试目前可以抵御论坛游侠和群发王)

include/global.php

  1. return substr(md5(substr($timestamp, 0, -6).$discuz_user.$discuz_uid.$discuz_pw), 8, 8);
复制代码



改成-->(注意,下面的$secStr的值请改成任意的字符串,不要和我的一样)

  1. $secStr = 'Jg9_@de.cd';
  2. return substr(md5(substr($timestamp, 0, -6).$discuz_user.$discuz_uid.$discuz_pw.$secStr), 8, 8);
复制代码


register.php

  1. include template('register');
复制代码


之上添加-->
  1.        //defend machine - start 1/2
  2.         $js_setvalue = "theform.formhash.value = ''";
  3.         $hidden_hashs = '<input type="hidden" name="formhash" value="">';
  4.         $comma = '';
  5.         $hash_arrry = array();
  6.         mt_srand((double)microtime() * 1000000);
  7.         for($i=0;$i<strlen(FORMHASH);$i++) {
  8.                 $var_name = randomStr(16);
  9.                 $rn = random(5,1);
  10.                 $hvalue = substr(FORMHASH, $i, 1);
  11.                 $rstring = random($i) . $hvalue . random(strlen(FORMHASH)-$i-1);
  12.                 $index = mt_rand(0, 10000);
  13.                 while (isset($hash_arrry[$index])) {
  14.                         $index = mt_rand(0, 10000);
  15.                 }
  16.                 $hash_arrry[$index] = array('id' => $i, 'n' => $var_name, 'v' => $rstring);
  17.                 $js_setvalue .= ' + theform.' . $var_name . ".value.charAt($i)";
  18.         }
  19.         $js_setvalue .= ';';
  20.         ksort($hash_arrry);
  21.         foreach($hash_arrry as $hv) {
  22.                 $hidden_hashs .= "\n" . '<input type="hidden" name="'.$hv['n'].'" value="'.$hv['v'].'">';
  23.         }
  24.         $tmp = explode("\n", $hidden_hashs);
  25.         $tmp2 = array_rand($tmp, count($tmp));
  26.         $hidden_hashs = '';
  27.         foreach ($tmp2 as $t) {
  28.                 $hidden_hashs .= "\n" . $tmp[$t];
  29.         }
  30.         //defend machine - end 1/2
复制代码


  1. ?>
复制代码


之上添加-->

  1. //defend machine - start 2/2
  2. function randomStr($length) {
  3.         $hash = '';
  4.         $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz';
  5.         $max = strlen($chars) - 1;
  6.         $seed = explode(' ', microtime());
  7.         mt_srand(((float)$seed[0] + (float)$seed[1]) * 1000000);
  8.         for($i = 0; $i < $length; $i++) {
  9.                 $hash .= $chars[mt_rand(0, $max)];
  10.         }
  11.         return $hash;
  12. }
  13. //defend machine - end 2/2
复制代码



templates/default/register.htm

  1. <form method="post" action="register.php" $enctype>
  2. <input type="hidden" name="formhash" value="{FORMHASH}">
复制代码


改成-->

      
  1. <script language="javascript">
  2.                 function validate(theform) {
  3.                         {$js_setvalue}
  4.                         return true;
  5.                 }
  6.         </script>
  7.         <form name="reg" method="post" action="register.php" $enctype onSubmit="return validate(this)">
  8.         {$hidden_hashs}
复制代码

[ 本帖最后由 hufanyun 于 2005-8-20 00:19 编辑 ]
郭鑫 发表于 2005-8-19 23:52:36 | 显示全部楼层
沙发

嘿嘿
被我抢了丫

支持支持
回复

使用道具 举报

winter0706 发表于 2005-8-19 23:53:10 | 显示全部楼层
暴力营销不知幹什麼的...又不會留言........
回复

使用道具 举报

freddy 发表于 2005-8-19 23:55:54 | 显示全部楼层
强烈鄙视抢我沙发的人!!!
回复

使用道具 举报

deepapa 发表于 2005-8-19 23:55:57 | 显示全部楼层
我现在用注册验证码,效果也不错。
回复

使用道具 举报

xjbl 发表于 2005-8-19 23:57:37 | 显示全部楼层
原帖由 deepapa 于 2005-8-19 23:55 发表
我现在用注册验证码,效果也不错。

+必填
回复

使用道具 举报

郭鑫 发表于 2005-8-19 23:59:26 | 显示全部楼层
嘿嘿
小F
偶不抢也被别人抢去了丫
回复

使用道具 举报

比翼鸟 发表于 2005-8-23 00:03:00 | 显示全部楼层
支持阿!!!太棒了!!!坐鑫身上
回复

使用道具 举报

比翼鸟 发表于 2005-8-23 00:13:10 | 显示全部楼层
$secStr的值请改成任意的字符串
如何改成任意字符串?
回复

使用道具 举报

 楼主| hufanyun 发表于 2005-8-23 00:30:48 | 显示全部楼层
就是说你可以随便改
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-21 18:27 , Processed in 0.031728 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表