首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保护电子邮件地址免受垃圾邮件机器人/网络爬虫的攻击

保护电子邮件地址免受垃圾邮件机器人/网络爬虫的攻击
EN

Stack Overflow用户
提问于 2010-09-08 09:17:44
回答 5查看 8.2K关注 0票数 14

如何防止电子邮件蜘蛛从网页上收集电子邮件?将它们链接在一起的mailto:是否会增加它们被发现的可能性?URL编码有用吗?

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-04-27 04:11:57

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

代码语言:javascript
复制
$(".email").each(function() {
    $(this).html( $(this).html().replace("...", "@").replace(/\.\.\./g, ".") );
    $(this).attr( "href", $(this).attr("href").replace("...", "@").replace(/\.\.\./g, ".") );
});

然后,电子邮件被写成:

代码语言:javascript
复制
<a href="mailto:bob.smith...example...com" class="email">bob.smith...example...com</a>

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

看看这个study on various email obfuscation methods

票数 3
EN

Stack Overflow用户

发布于 2010-09-08 09:28:37

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

代码语言:javascript
复制
myLink.href='mai'+'lto:'+'bob'
           +'@'
           +'example.com';

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

这个想法是从HTML中删除电子邮件地址,并用javascript注入它们。这样,电子邮件地址就不会以原始形式出现在任何HTTP流量中,而这正是爬行器正在查看的内容。

票数 7
EN

Stack Overflow用户

发布于 2010-09-08 09:23:23

我倾向于避免使用mailto,因为它让人们很容易获取电子邮件地址。

如果你打算在你的网站上有联系页面,那么只要有一个表单,当他们提交你的服务器端代码并使用适当的电子邮件地址时。

如果你需要其他人的地址,使用数字,名字,用户名,某种方式来识别他们。

如果你只有一个电子邮件地址,它很可能会被发现,即使你试图隐藏它,因为这些程序可能相当复杂,因为查找电子邮件地址就是它们的目的。

就像大多数秘密一样,如果你不想让别人知道,就不要把它们放在页面上。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3663963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档