首页 > 其他分享 >防止垃圾注册,在UCHOME注册页加入reCaptcha!

防止垃圾注册,在UCHOME注册页加入reCaptcha!

时间:2022-12-16 16:02:22浏览次数:62  
标签:-- reCaptcha sijitao 注册 UCHOME net td

前两天我在论坛里写了一篇有关​​如何在uchome批量删除垃圾日志​​,和​​如何在uchome批量删除垃圾用户​​的帖子。我提到删除垃圾注册不是也制止垃圾用户的最终办法。今天我就要和大家分享一招可以理论制止垃圾注册的方法 – 使用reCaptcha!
UCHOME的图片验证码防灌水功能很弱,根本挡不住那些注册机。这个我相信很多使用UChome的站长都深有同感吧?这就是为什么我要用到reCaptcha。2009年reCapcha被Google收购(2009年9月16日Google收购了reCaptcha)。reCaptcha用到的图片是来自一些破损难辨的典籍,使用者在识别它的过程中也给这些典籍的数字化做贡献。本文要介绍的是如何在UCHome注册页里加入reCaptcha。

注册reCaptcha

你需要先注册一个帐号,因为Google收购了reCaptcha,所以你可以使用Google的邮箱​​登入​​。之后你要输入你的域名,就可以得到一个public key和private key, 这两个密钥将要用在下面的代码里。

下载reCaptcha PHP库

点​​这里​​下载。下载后把recaptchalib.php文件上传到UCHOME根目录下的source文件夹里。

修改do_register.php

这个文件在UCHOME根目录下的source文件夹里,打开这个文件,加入下面的代码。注意:修改部分用“####BY sijitao.net”标识



?php ####BY sijitao.net - 这里加入三行 require_once('recaptchalib.php'); $publickey = "xxx"; //替换为第一步里获取的public key $privatekey = "yyy"; //替换为第一步里获取的private key ...... ...... if(!$_POST['password'] || $_POST['password'] != addslashes($_POST['password'])) { showmessage('profile_passwd_illegal'); } ####BY sijitao.net - 在这里加入下面几行 $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); if (!$resp-is_valid) { showmessage('incorrect_code'); }



修改do_register.html

此文件位于UCHome根目录下template/default/文件夹里。打开这个文件做如下更改。注意:修改部分用“####BY sijitao.net”标识



script type="text/javascript"// ![CDATA[
function register(id, result) {
if(result) {
$('registersubmit').disabled = true;
window.location.href = "$jumpurl";
} else {
#### BY sijitao.net, 加入下面这句,目的是在提交出现错误时,重刷验证代码
Recaptcha.reload();
updateseccode();
}
}
// ]]/script
......
......
!--{else}--
tr
th style="vertical-align: top;"验证码/th
td
scriptseccode();/script
p请输入上面的4位字母或数字,看不清可a href="javascript:updateseccode()"更换一张/a/p
input type="text" id="seccode" name="seccode" value="" onBlur="checkSeccode()"
tabindex="1" / span id="checkseccode" /span
/td
/tr
!--{/if}--
!--{/if}--
####By sijitao.net - 这里加入以下代码
tr
th style=style="vertical-align: top;"超强验证码/td
td
!--{eval echo recaptcha_get_html($publickey);}--
/td
/tr



取消UCHOME自带验证

登入高级管理 - 防灌水设置 - 取消注册页面开启验证码功能,最后更新一下系统的缓存。

貌似有点麻烦,但是请相信我,这绝对是一劳永逸!

标签:--,reCaptcha,sijitao,注册,UCHOME,net,td
From: https://blog.51cto.com/zhangnq/5947694

相关文章