保护垃圾邮件机器人/网络爬虫的电子邮件地址

问题描述:

如何防止通过电子邮件蜘蛛从网页收集的电子邮件?连接它们的mailto:是否会增加它们被拾取的可能性? URL编码有用吗?保护垃圾邮件机器人/网络爬虫的电子邮件地址

显然,最好的应对措施是,只显示电子邮件地址登录的用户,或者提供一个接触的形式,而不是电子邮件地址。但就纯粹的客户端解决方案而言,有哪些可用的解决方案?

+0

对于解决方案部分,请看一下:http:// stackoverflow。com/questions/308772/what-are-some-ways-to-protect-emails-on-websites-from-spambots – 2010-09-08 01:24:35

+0

我不确定电子邮件混淆是否是一个很好的解决方案(如上面@yi的评论中提供的那样。但@詹姆斯布莱克正确地使用电子邮件形式,并使用服务器端代码来处理邮件。 – 2010-09-08 01:28:14

多年以后,我创建了下面的jQuery为不同的网站:

$(".email").each(function() { 
    $(this).html($(this).html().replace("...", "@").replace(/\.\.\./g, ".")); 
    $(this).attr("href", $(this).attr("href").replace("...", "@").replace(/\.\.\./g, ".")); 
}); 

电子邮件,然后写成:

<a href="mailto:bob.smith...example...com" class="email">bob.smith...example...com</a> 

它并不完美,但它非常简单,似乎阻挠了大多数电子邮件收割机。这种方法的好处是不使用JavaScript的人可能会弄清楚实际的电子邮件地址是什么。


看看这个study on various email obfuscation methods

我倾向于避免mailto,因为它使得它太容易让人们收获的电子邮件地址。

如果你要对你的网站的网页接触,然后只是有一个形式,当他们提交你的服务器端代码,并使用适当的电子邮件地址。

如果你需要能够有可用的其他人的地址,使用号码,姓名,用户名,一些方法来识别它们。

如果你只是有一个跨度很可能被拾起,即使你试着隐藏它,因为这些程序可能会非常复杂,如发现电子邮件地址的电子邮件地址是他们是什么。

与大多数的秘密,如果你不希望别人得到他们,不要把他们的网页上。

+0

电子邮件在页面上,在''s。除了删除电子邮件地址,有什么我可以减少他们被电子邮件蜘蛛拾取的可能性吗? – Zaz 2010-09-08 01:38:07

大多数电子邮件蜘蛛没有JavaScript解释器,所以如果你真的需要mailto:你可以用JavaScript注入...只是确保该地址在JavaScript模糊不知何故,例如

myLink.href='mai'+'lto:'+'bob' 
      +'@' 
      +'example.com'; 

如果您需要在页面上显示的电子邮件地址,通常的解决办法是生成使用类似PHP的GD图像(虽然JavaScript注入应努力确定这太)。

这个想法是从HTML中删除电子邮件地址,并用javascript注入它们。这样,电子邮件地址就不会以任何HTTP流量的形式出现,这正是蜘蛛所看到的。

+0

谢谢,这是一个非常聪明的方式。 – Zaz 2010-09-08 01:47:42

+0

然后,你必须要求javascript使用此页面,这可以减少你的用户。 – 2010-09-08 14:26:13

我通常会将它们分成不同的部分,然后使用javascript重新组合它们。最终的javascript做一个document.write写出html。

var mail = "mailto"; 
var namepart = "test.user"; 
var domainpart = "example"; 
var tld = "com"; 
var address = namepart + "@" + domainpart + "." + tld; 
document.write("<a href=" + mail + ":" + address + '">' + address + "</a>";