避免用户用一个邮箱在网站上注册多个帐号(马甲)

SNS的风已经刮过了,国内不少SNS网站正在刮第二阵风:游戏!像聚友网,开心网,山寨开心网,校内等社交网站都添加了大量的游戏,在这些游戏中都有一个共同之处–邀请朋友注册送积分(金币,道具等等……)。很多人就会多申请几个邮箱,然后再多注册几个马甲来获利。

我比较懒,一直想着有什么样的办法可以不申请更多的邮箱,而又能多注册几个马甲。可能大家都比较熟悉Google的Gmail邮箱,这个邮箱有一个特点就是它那神奇的“+”加号。例如现在我有这样一个邮箱abc@gmail.com那么我只需要在@符号和abc中间添加一个“+”,还有若干文字,就能“生成”一个新的邮箱,无需申请。例如abc+haha@gmail.com, abc+hi@gmail.com,这2个邮箱的邮件都发送到abc@gmail.com中,这就方便了我们注册马甲啦!

那怎么对付这样投机取巧的人呢?其实可以获取他的真正的邮箱,因为万变不离其中,其实注册的邮箱就是abc@gmail.com,用一个小小的方法获取一下base email就OK了,参考代码如下:

public static string GetBaseEmail(string email)
{
	if (string.IsNullOrEmpty(email))
		throw new ArgumentNullException("email");
	string TrimedEmail = email.Trim();
	int PositionofAdd = TrimedEmail.IndexOf('+');
	int PositionofAt = TrimedEmail.IndexOf('@');
	if (PositionofAdd > 0 && PositionofAt > 0)
	{
		return TrimedEmail.Substring(0, PositionofAdd) + TrimedEmail.Substring(PositionofAt);
	}
	else
	{
		return TrimedEmail;
	}
}

这样就可以稍微减少一点恶意注册,增加注册马甲的成本。其实还有很多更加有效的防止注册马甲的方法,例如在浏览器里面记录一个COOKIE来唯一标示该浏览器,不过清一下COOKIE就能搞定,或者换一个浏览器。又或者记录下注册和登陆的IP,但是这个有可能会误伤了网吧用户。总之就是道高一尺魔高一丈。今天突然想起来以前曾经看过这样一个方法,拿出来分享一下。

Leave a Reply

Your email address will not be published. Required fields are marked *