PJblog的中文注册及与应对机器注册的方法

PJblog被机器注册由来已久,在PJblog论坛中搜索一番,也没有找到好的方法,添加ip限制的方式,一则麻烦,二则系统好像添加IP的数量有限制。借用Discuz论坛的方法,用注册名过滤英文字母和数字的方式尝试无效。只得自己解决。
请求度娘。过程:
1、搜得 whsnow的 https://www.jb51.net/article/42693.htm《使用正则限制input框只能输入数字/英文/中文等等》
寻得一段代码:只能输入汉字的,代码如下:

<input onkeyup="value=value.replace(/[^/u4E00-/u9FA5]/g,")"
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/u4E00-/u9FA5]/g,"))"
ID="Text4" NAME="Text4>

在register.asp中,把以下代码:
<input name="username" type="text" size="18" class="userpass" maxlength="24" onblur="if (this.value.length != 0) {CheckName();}" onfocus="if (this.value.length != 0) {CheckName();}" onclick="if (this.value.length != 0) {CheckName();}" id="vs"/><input id="PostBack_UserName" value="False|$|False" type="hidden><font color="#FF0000>&nbsp;*</font> 用户名由2到24个字符组成 <span id="CheckName></span>

加以组合,调整修改为:
<input name="username" type="text" size="16" class="userpass" maxlength="24" onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,")" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,"))" onblur="if (this.value.length != 0) {CheckName();}" onfocus="if (this.value.length != 0) {CheckName();}" onclick="if (this.value.length != 0) {CheckName();}" id="vs"/>
   <input id="PostBack_UserName" value="False|$|False" type="hidden>
   <font color="#FF0000>&nbsp;*</font> 用户名需2-10个汉字,<font color="#FF0000>本站只接受汉字注册</font> <span id="CheckName></span>
 

经测试,有效,英文字母、数字,无法输入,只能输入汉字。

2、第二天,网站灌水注册依旧,想想也是,本来注册就是机器注册,怎么会在页面录入。第二招,改变注册的验证码方式。度娘再次出征。
搜得:goldapple http://www.goldapple.name/blog/?action=show&id=969《无组件ASP中文验证码及算术验证码下载及应用》,其中介绍的方法运用后,验证码无法再次刷新,总是报javascript:refreshimg()出错,个人理解是验证码图片无法刷新的问题,却不知症结在何处,唉,外行的人,着急!再搜,验证码刷新,搜得zmzhao http://blog.sina.com.cn/s/blog_53729e460100ppib.html《如何通过单击刷新图片验证码》,获得验证码刷新代码:

<input name="txtCheckCode" type="text" class="fixedWidth" id="txtCheckCode" />
<img src="code.jsp" alt="验证码" height="20" align="bottom" style="cursor:pointer;" title="看不清可单击图片刷新" onclick="this.src='code.jsp?d='+Math.random();" />

最后修改初步完成,一夜,无灌水注册。我知道,灌水注册不会杜绝,只是希望会有一点点成效。
修改两处:
A:在register.asp中
<input name="validate" type="text" size="4" class="userpass" maxlength="4" onFocus="get_checkcode();this.onfocus=null;" onKeyUp="ajaxcheckcode('isok_checkcode',this);"/> <span id="checkcode><label style="cursor:pointer;" onClick="get_checkcode();>点击获取验证码</label></span> <span id="isok_checkcode></span>
组合修改为:
<input name='checkimg' type='text' class='input' id='checkimg' style='width: 50px;' maxlength='6' /><img id="checkcode" src="GetCode.asp" alt="验证码" height="20" align="bottom" style="cursor:pointer;" title="看不清可单击图片刷新" onclick="this.src='GetCode.asp?d='+Math.random();" /> <font color='blue'><strong>看不清楚?点击验证码,换一个</strong></font>
</p>
B:在register.asp中
If CStr(LCase(Session("GetCode")))<>CStr(LCase(validate)) Then
ReInfo(0) = "错误信息"
   ReInfo(1) = "<b>验证码有误,请返回重新输入</b><br/><a href=""javascri&#112;t:history.go(-1);">单击返回</a>"
   ReInfo(2) = "ErrorIcon"
   register = ReInfo
   Exit Function
End If
</p>
组合修改为:
If Trim(Request.Form("checkimg"))=Empty o&#114; Trim(Session("psn"))<>Trim(Request.Form("checkimg")) Then
   ReInfo(0) = "错误信息"
   ReInfo(1) = "<b>验证码有误,请返回正确输入验证码</b><br/><a href=""javascri&#112;t:history.go(-1);">单击返回</a>"
ReInfo(2) = "ErrorIcon"
   register = ReInfo
   Exit Function
End If

 

无组件ASP中文验证码下载:点击下载此文件
无组件ASP算术验证码下载:
点击下载此文件

『悠然-守望角』历史上的这一天:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

有人回复时邮件通知我