论文部分内容阅读
你经常把自己的Email放在网页上吗?那就要小心了,你的信箱很容易成为垃圾邮件的攻击对象!越来越多的站长、博客主开始担心自己的信箱在搜索引擎中被暴露后,被垃圾邮件发送软件利用。因此,一些人在页面上把自己的信箱地址中@改为#,然后需要用户手工替换,这是不是个好办法呢?到底有没有更完美的解决方法?!
很显然,这个流行的做法并不是个好主意。首先它并不美观,很多站长已经完全不声明#是@的代替者,这让一些新手无法适应。其他用户更是厌烦在拷贝了信箱地址后又要自己修改。
一、“追踪”过程
咱们先看看垃圾邮件发送软件的运行方法。首先,由使用者输入要用到的搜索引擎地址以及要搜索的关键字,软件运行后逐一打开搜索到的网址并分析网站页面的源代码,自动识别出Email后保存下来。或者使用者输入一个网站,软件打开这个网站内的所有链接,在HTML源代码中找到Email地址然后保存。最后一步,就是大家都恶心的群发垃圾邮件过程。
从这个过程中我们看到,软件所找到的,是网页的HTML源码,然后从中分析识别出页面所包含的信箱地址。那么我们能不能从HTML下手,来欺骗这些Email搜集软件呢?下面我们来试试。
二、初级策略
最先想到的,应该是使用HTML标识来破坏HTML源码内Email的格式。那么怎么做呢?举个例子,如果我要在页面上显示luanbi@126.com(各位垃圾邮件MAKER,奉劝你不要尝试发送你的垃圾,我相信126垃圾识别+金山毒霸+FOXMAIL足可阻挡你,你又何必浪费时间呢?),那么在HTML中,我写下:
luanbi@126.com
或者luanbi@126.com
这样,在页面上一般的正常显示luanbi@126.com,软件却很困难识别出你的信箱来。这时,你会问:如果软件先自动过滤所有HTML标签呢?这样信箱地址不一样暴露出来了?这是个好问题,连HTML标签想着要过滤,那为什么#就不能自动识别成@呢?可见把@写成#是多此一举的办法。
三、中级策略
把“.”写成:“.”(为英文半角字符),这样信箱在HTML源码中就成了luanbi@126.com,或者,你可以用同样的方法来替换“@”或者信箱地址包含的字母或数字。用这个方法,相当一部分软件都没辙了。但你还是担心,如果遇到哪个疯子软件,连这种格式也识别,那又该怎么办?别急,咱们还有一个高级方案。
四、高级策略
其实从现在起,才是我写这篇文章的目的。前面不过是我们为了防范软件识别的思维过程。下面我们来看看这个高级方案:javascript。
Email Loading...
@126.com
<script language="JavaScript">
var strName = "luanbi";
NOWT.innerText = strName;
</script>
只要将上面内容放入网页中,客户端的电脑上显示luanbi@126.com。当然这只是一个思路,各位JAVASCRIPT高手可以通过N种不同方法来实现这一效果。当然,这一招并不是对信箱搜索软件的绝杀。为什么这么说?把上面代码保存成HTML后用IE打开,然后选择“另存为”,保存类型选择TXT,然后你看看保存到了什么?JAVASCRIPT的作用全没了,你的信箱地址赤裸裸地展现给了别人。
别沮丧,还有最后的办法。
五、终极策略
抓取Email的机器人软件可能会通过IE的某接口,直接获取页面的纯文本内容,这样刚刚的JAVASCRIPT所起到的遮掩效果也失灵了。但是机器人抓取的只是一瞬间的文本内容,那么我们就把显示Email地址的JS拖延几秒钟:
Email Loading
...
<script language="JavaScript">
var strName = "luanbi";
var strMail = "@126.com";
var intTime = 7000//毫秒
setTimeout("gogo()",intTime)
function gogo()
{
NOWT.innerText=strName + strMail;
}
</script>
(以上原代码可在http://pigwawa.com/article.asp?id=21找到。)
哪一个机器人会在同一个页面等待七秒以上?不可能,所以他们抓取的,是毫无意义的“LOADING”提示。于是,我们终于抵抗了机器人的侵略。互联网发展是快速的,在疯子辈出的社会里,真的没有绝对的安全。但是,我们善良的人也应该拿起自己的武器,抵抗侵扰我们的坏蛋们。
很显然,这个流行的做法并不是个好主意。首先它并不美观,很多站长已经完全不声明#是@的代替者,这让一些新手无法适应。其他用户更是厌烦在拷贝了信箱地址后又要自己修改。
一、“追踪”过程
咱们先看看垃圾邮件发送软件的运行方法。首先,由使用者输入要用到的搜索引擎地址以及要搜索的关键字,软件运行后逐一打开搜索到的网址并分析网站页面的源代码,自动识别出Email后保存下来。或者使用者输入一个网站,软件打开这个网站内的所有链接,在HTML源代码中找到Email地址然后保存。最后一步,就是大家都恶心的群发垃圾邮件过程。
从这个过程中我们看到,软件所找到的,是网页的HTML源码,然后从中分析识别出页面所包含的信箱地址。那么我们能不能从HTML下手,来欺骗这些Email搜集软件呢?下面我们来试试。
二、初级策略
最先想到的,应该是使用HTML标识来破坏HTML源码内Email的格式。那么怎么做呢?举个例子,如果我要在页面上显示luanbi@126.com(各位垃圾邮件MAKER,奉劝你不要尝试发送你的垃圾,我相信126垃圾识别+金山毒霸+FOXMAIL足可阻挡你,你又何必浪费时间呢?),那么在HTML中,我写下:
luanbi@126.com
或者luanbi@126.com
这样,在页面上一般的正常显示luanbi@126.com,软件却很困难识别出你的信箱来。这时,你会问:如果软件先自动过滤所有HTML标签呢?这样信箱地址不一样暴露出来了?这是个好问题,连HTML标签想着要过滤,那为什么#就不能自动识别成@呢?可见把@写成#是多此一举的办法。
三、中级策略
把“.”写成:“.”(为英文半角字符),这样信箱在HTML源码中就成了luanbi@126.com,或者,你可以用同样的方法来替换“@”或者信箱地址包含的字母或数字。用这个方法,相当一部分软件都没辙了。但你还是担心,如果遇到哪个疯子软件,连这种格式也识别,那又该怎么办?别急,咱们还有一个高级方案。
四、高级策略
其实从现在起,才是我写这篇文章的目的。前面不过是我们为了防范软件识别的思维过程。下面我们来看看这个高级方案:javascript。
Email Loading...
@126.com
<script language="JavaScript">
var strName = "luanbi";
NOWT.innerText = strName;
</script>
只要将上面内容放入网页中,客户端的电脑上显示luanbi@126.com。当然这只是一个思路,各位JAVASCRIPT高手可以通过N种不同方法来实现这一效果。当然,这一招并不是对信箱搜索软件的绝杀。为什么这么说?把上面代码保存成HTML后用IE打开,然后选择“另存为”,保存类型选择TXT,然后你看看保存到了什么?JAVASCRIPT的作用全没了,你的信箱地址赤裸裸地展现给了别人。
别沮丧,还有最后的办法。
五、终极策略
抓取Email的机器人软件可能会通过IE的某接口,直接获取页面的纯文本内容,这样刚刚的JAVASCRIPT所起到的遮掩效果也失灵了。但是机器人抓取的只是一瞬间的文本内容,那么我们就把显示Email地址的JS拖延几秒钟:
Email Loading
...
<script language="JavaScript">
var strName = "luanbi";
var strMail = "@126.com";
var intTime = 7000//毫秒
setTimeout("gogo()",intTime)
function gogo()
{
NOWT.innerText=strName + strMail;
}
</script>
(以上原代码可在http://pigwawa.com/article.asp?id=21找到。)
哪一个机器人会在同一个页面等待七秒以上?不可能,所以他们抓取的,是毫无意义的“LOADING”提示。于是,我们终于抵抗了机器人的侵略。互联网发展是快速的,在疯子辈出的社会里,真的没有绝对的安全。但是,我们善良的人也应该拿起自己的武器,抵抗侵扰我们的坏蛋们。