屏蔽信箱搜集软件的完美解决方案

  越来越多的站长都开始担心自己的信箱在搜索引擎中被暴露后被垃圾邮件发送软件利用,而在页面上把自己的信箱地址中@改为#。但这是不是个好办法呢?到底有没有更完美的解决方法?
  很显然,这个流行的做法并不是个好主意。首先它并不美观,很多站长已经完全不声明#是@的代替者,这让一些新手无法适应。其他用户更是厌烦在拷贝了信箱地址后又要自己修改。
  咱们先看看垃圾邮件发送软件的运行方法。首先由使用者输入要用到的搜索引擎地址以及要搜索的关键字,软件运行后逐一打开搜索到的网址并分析网站页面的源代码,自动识别出EMAIL后保存下来。或者使用者输入一个网站,软件打开这个网站内的所有连接,在HTML源代码中找到EMAIL地址然后保存。最后一步,就是大家都恶心的群发垃圾邮件的过程。
  从这个过程中我们看到,软件所找到的,是网页的HTML源码,然后从中分析识别出页面所包含的信箱地址。那么我们能不能从HTML下手,来欺骗这些EMAIL搜集软件呢?下面我们来试试。
  初级策略。
  最先想到的,应该是使用HTML标识来破坏HTML源码内EMAIL的格式。那么怎么做呢?举个例子,如果我要在页面上显示luanbi@126.com,那么在HTML中,我写下
程序代码 程序代码
luanbi<font>@</font>126.com
或者
程序代码 程序代码
luanbi@1<b></b>26.com

  这样,在页面上一般的正常显示luanbi@126.com,软件却很困难识别出你的信箱来。这时,你会问:如果软件先自动过滤所有html标签呢?这样信箱地址不一样暴露出来了?这是个好问题,连HTML标签想着要过滤,那为什么#就不能自动识别成@呢?可见把@写成#是多此一举的办法。
  中级策略。
  把“.”写成:“&#46;”(&#为英文半角字符),这样信箱在HTML源码中就成了
程序代码 程序代码
luanbi@126&#46;com
,或者,你可以用同样的方法来替换@或者信箱地址包含的字母或数字。用这个方法,相当一部分软件都没辙了。
  但你还是担心,如果遇到哪个疯子软件,连这种格式也识别,那又该怎么办?别急,咱们还有一个终极方案。
  高级策略。
  其实从现在起,才是我写这篇文章的目的。前面不过是我们为了防范软件识别的思维过程。下面我们来看看这个高级方案:javascript。
程序代码 程序代码
<span style="FONT-SIZE: 12px; FONT-family: Arial;">
    <span id="NOWT">
    Email Loading...
    </span>
    @126.com
</span>
<script language="JavaScript">
    var strName = "luanbi";
    NOWT.innerText = strName;
</script>

  上面这个方法依然在客户端上显示luanbi@126.com。当然这只是一个思路,各位JAVASCRIPT高手可以通过N种不同方法来实现这一效果。当然,这一招并不是对信箱搜索软件的绝杀。为什么这么说?把上面代码保存成HTML后用IE打开,然后选择另存为,保存类型选择TXT,然后你看看保存到了什么?JAVASCRIPT的作用全没了,你的信箱地址赤裸裸的展现给了别人。
  别沮丧,还有最后的办法。
  终极策略。
  抓取EMAIL的机器人软件可能会通过IE的某接口直接获取页面的纯文本内容,这样刚刚的JAVASCRIPT所起到的遮掩效果也失灵了。但是机器人抓取的只是一瞬间的文本内容,那么我们就把显示EMAIL地址的JS拖延几秒钟:
程序代码 程序代码

<span id="NOWT">
Email Loading...
</span>
<script language="JavaScript">
var strName = "luanbi";
var strMail = "@126.com";
var intTime = 7000  //毫秒
setTimeout("gogo()",intTime)
function gogo()
{
document.getElementById("NOWT").innerHTML = strName + strMail;
}
</script>

  哪一个机器人会在同一个页面等待七秒以上?不可能,所以他们抓取的,是毫无意义的“LOADING”提示。于是,我们终于抵抗了机器人的侵略。
  互联网发展是快速的,在疯子辈出的社会里,真的没有绝对的安全。但是,我们善良的人也应该拿起自己的武器,抵抗侵扰我们的坏蛋们。
  骚扰策略。
  在你的HTML中加入类似的代码:
程序代码 程序代码
  <DIV style="top : -1000px;left : -1000px;
  position : absolute;">234@126.com dfk4@sohu.com 23rji@baidu.com .......</DIV>

  在DIV里加入无数个无效EMAIL,让那些想从你的网站获取EMAIL的愚蠢软件们白忙一场。(懂得使用ASP或者PHP之类的朋友,可以在每个页面上编写随机生成无数个无效无规律的EMAIL地址。)
  DIV的方法或者可以被过滤,可以使用<font color=ffffff>来隐藏这些无效地址。我们经常被这些软件骚扰,如今,我们不再任人摆布,是反骚扰这类垃圾制造者的时候了。

[2006-8-29更正]


[本日志由 GIDot 于 2008-11-27 07:05 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 2 | 引用: -2 | 查看次数: 6232
回复回复于仁颇颇黎[2008-11-28 12:30 AM | del]
厉害,不错的思路
回复回复Cataero[2008-11-27 06:25 PM | del]
今天看到小众的文章,过来看了一下,原理明白了。
不过那个网页生成的代码有一点小问题,如果不选中“邮箱地址可点击”,生成的代码就不会把“Loading...”替换成email地址,因为span没有href属性,导致js出错,后面的语句不执行。
回复来自 GIDot 的评论 GIDot 于 2008-11-27 07:00 PM 回复
多谢,已经修正了。
回复回复can[2006-10-15 08:38 AM | del]
呵呵。学习了。有些邮箱都爆满了。
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭