您的位置:首页 > 运维架构 > 网站架构

让网站禁止某些邮箱的注册

2010-08-19 16:30 218 查看
换用 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  email ajax function 2010