换用 phpwind 做为论坛系统后,注册机乱注册的用户就一堆一堆的过来,为了阻止注册机的注册,启用了比较复杂的验证码,把注册文件改名、邮件验证等,做了这些之后,确实挡住了一大部分的注册机。消停了一阵后,又来了,还好,这些注册机注册时使用的邮箱都是某些固定后缀,好办了,在注册过程中禁止这些后缀的注册。
phpwind 论坛只提供了允许指定邮箱注册的功能,那不行啊,我是想禁止指定邮箱的注册,phpwind 论坛并没有提供这样的功能,在 phpwind 的官方论坛上,有不少人建议增加这个功能,直到 7.3.2 版还是没有增加。咱们只能是自己动手了。
2009.12.04注释:可以略过这段,往下看更新过的代码
好,修改注册文件,一般是 register.php,找到这些,大概是在 73 行:
if
(
!
$email
||
!
preg_match
(
"/^[-a-zA-Z0-9_/.]+@([0-9A-Za-z][0-9A-Za-z-]+/.)+[A-Za-z]{2,5}$/"
,
$email
)
)
{
echo
1
;
ajax_footer(
)
;
}
这段代码就是验证注册的邮箱是否合法,那好,在下面加这些就可以了:
if
(
strpos
(
$email
,
"@designhot.net.cn"
)
)
{
echo
1
;
ajax_footer(
)
;
}
意思就是说,如何邮箱是以“@designhot.net.cn”结尾的,那就是非法了,哈哈,搞死你注册机
要是禁止多个呢,就把这段多写几遍就好了。
还有,再找到这句:
if
(
empty
(
$regemail
)
||
!
ereg
(
"^[-a-zA-Z0-9_/.]+/@([0-9A-Za-z][0-9A-Za-z-]+/.)+[A-Za-z]{2,5}$"
,
$regemail
)
)
{
Showmsg(
'illegal_email'
)
;
}
在这后面加上:
else
if
(
strpos
(
$regemail
,
"@designhot.net.cn"
)
)
{
Showmsg(
'illegal_email'
)
;
}
同样,如果有多个要禁止的邮箱,就把上面这句多写几遍就好了。
我发现的注册机的后缀有:
@designhot.net.cn
@cpok-bdqn.com.cn
@bdqncpok.com.cn
@bdqnok-cp.com.cn
@cp-bdqnok.com.cn
@company-mail.cn
@delu(这个比较烦,有 @delu1.com、@delu8.com 等)
@newline.net.cn
@marketnet.com.cn
@hongkong-seo.com
2009.12.03更新,偶然无聊,发现老窝了,这些都是一个地方出来的:
@chongsoft.org
@wormseo.cn
@wormseo.com
@chongsoft.cn
@zyseo.com
@seorj.cn
@qqneiyi.cn
@chongblog.cn
@chongblog.com
@71mail.com.cn
@designhot.net.cn
@marketnet.com.cn
@newline.net.cn
@company-mail.cn
@cpok-bdqn.com.cn
@cp-bdqnok.com.cn
@bdqncpok.com.cn
@bdqnok-cp.com.cn
@bdqn-hicp.com.cn
@wormsoft.cn
@chongseo.net
@chongseo.cn
@chongseo.com
@huiseo.cn
@csoftmail.cn
@xdseo.com
不用说,都屏蔽丫
2009.12.04更新 :
越来越多的邮箱都发垃圾,为了方便改代码,上面说的代码可以不用考虑了,用下面这个好了:
还在 register.php 文件里,先在文件开头部分,大概第10行左右,就是“if (GetGP(‘vip’) == ‘activating’) {”之前,写一个自己的函数:
function
osnaile_isgoodmail(
$email
)
{
$spamemail
=
array
(
"@chongsoft.org"
,
"@wormseo.cn"
,
"@wormseo.com"
,
"@chongsoft.cn"
,
"@zyseo.com"
,
"@seorj.cn"
,
"@qqneiyi.cn"
,
"@chongblog.cn"
,
"@chongblog.com"
,
"@71mail.com.cn"
,
"@designhot.net.cn"
,
"@marketnet.com.cn"
,
"@newline.net.cn"
,
"@company-mail.cn"
,
"@cpok-bdqn.com.cn"
,
"@cp-bdqnok.com.cn"
,
"@bdqncpok.com.cn"
,
"@bdqnok-cp.com.cn"
,
"@bdqn-hicp.com.cn"
,
"@wormsoft.cn"
,
"@chongseo.net"
,
"@chongseo.cn"
,
"@chongseo.com"
,
"@huiseo.cn"
,
"@csoftmail.cn"
,
"@delu"
,
"@hongkong-seo.com"
,
"@xdseo.com"
)
;
foreach
(
$spamemail
as
&
amp;
$spam
)
{
if
(
strpos
(
$email
,
$spam
)
)
{
return
false
;
}
}
return
true
;
}
好,然后再找到这些,大概是在 73 行:
if
(
!
$email
||
!
preg_match
(
"/^[-a-zA-Z0-9_/.]+@([0-9A-Za-z][0-9A-Za-z-]+/.)+[A-Za-z]{2,5}$/"
,
$email
)
)
{
echo
1
;
ajax_footer(
)
;
}
后面加上:
if
(
!
osnaile_isgoodmail(
$email
)
)
{
echo
1
;
ajax_footer(
)
;
}
再找到这句:
if
(
empty
(
$regemail
)
||
!
ereg
(
"^[-a-zA-Z0-9_/.]+/@([0-9A-Za-z][0-9A-Za-z-]+/.)+[A-Za-z]{2,5}$"
,
$regemail
)
)
{
Showmsg(
'illegal_email'
)
;
}
在这后面加上:
else
if
(
!
osnaile_isgoodmail(
$regemail
)
)
{
Showmsg(
'illegal_email'
)
;
}
2010.06.04更新:
在 phpwind 7.5 中已经有邮箱黑名单功能了,只要在后台里设置好黑名单就行了
黑名单列表:
qsseo.com,seoyw.com,chongsoft.org,wormseo.cn,wormseo.com,chongsoft.cn,zyseo.com,seorj.cn,qqneiyi.cn,chongblog.cn,chongblog.com,71mail.com.cn,designhot.net.cn,marketnet.com.cn,newline.net.cn,company-mail.cn,cpok-bdqn.com.cn,cp-bdqnok.com.cn,bdqncpok.com.cn,bdqnok-cp.com.cn,bdqn-hicp.com.cn,wormsoft.cn,chongseo.net,chongseo.cn,chongseo.com,huiseo.cn,csoftmail.cn,xdseo.com,designhot.net.cn,cpok-bdqn.com.cn,bdqncpok.com.cn,bdqnok-cp.com.cn,cp-bdqnok.com.cn,company-mail.cn,delu1.com,delu2.com,delu3.com,delu4.com,delu5.com,delu6.com,delu7.com,delu8.com,newline.net.cn,marketnet.com.cn,hongkong-seo.com,shoesonlineshop.org