保护垃圾邮件机器人/网络抓取工具中的电子邮件地址

Zaz*_*Zaz 12 spam-prevention web-crawler email-spam spam

您如何防止电子邮件蜘蛛从网页收集电子邮件?是否mailto:将它们连接起来增加被拾起他们的可能性有多大?URL编码有用吗?

显然,最好的对策是仅向登录用户显示电子邮件地址,或提供联系表单而不是电子邮件地址.但就纯粹的客户端解决方案而言,可用的是什么?

Dag*_*bit 7

大多数电子邮件蜘蛛都没有javascript解释器,所以如果你真的需要mailto:你可以用javascript注入它...只需确保地址在javascript中以某种方式被遮挡,例如

myLink.href='mai'+'lto:'+'bob'
           +'@'
           +'example.com';
Run Code Online (Sandbox Code Playgroud)

如果你需要在页面上显示电子邮件地址,一个常见的解决方案是使用php的gd生成图像(尽管javascript注入也可以正常工作).

我们的想法是从HTML中删除电子邮件地址并使用javascript注入它们.这样,电子邮件地址在任何HTTP流量中都不会以其原始形式出现,这正是蜘蛛所关注的.


Zaz*_*Zaz 6

几年后,我为另一个网站创建了以下 jQuery:

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

电子邮件则写为:

<a href="mailto:bob.smith...example...com" class="email">bob.smith...example...com</a>
Run Code Online (Sandbox Code Playgroud)

它并不完美,但非常简单,并且似乎可以阻止大多数电子邮件收集器。这种方法的优点是,不使用 JavaScript 的人可能能够算出实际的电子邮件地址是什么。


查看这项关于各种电子邮件混淆方法的研究