保护电子邮件地址免受垃圾邮件机器人/网络爬虫的侵害
-
01-10-2019 - |
题
如何防止电子邮件蜘蛛从网页收集电子邮件?做 mailto:
将它们联系起来会增加它们被拾取的可能性吗?URL 编码有用吗?
显然,最好的对策是只向登录用户显示电子邮件地址,或者提供联系表单而不是电子邮件地址。但就纯粹的客户端解决方案而言,有什么可用的呢?
解决方案 4
多年后,我为另一个网站创建了以下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的人可能能够确定实际的电子邮件地址是什么。
看看这个 研究各种电子邮件混淆方法.
其他提示
大多数电子邮件蜘蛛没有JavaScript口译员,因此,如果您真的需要 mailto:
您可以将其注入JavaScript ...只需确保地址在JavaScript中被遮盖,例如
myLink.href='mai'+'lto:'+'bob'
+'@'
+'example.com';
如果您需要在页面上显示电子邮件地址,则常用的解决方案是使用PHP的GD生成图像(尽管JavaScript注入也应该可以为此起作用)。
这个想法是从HTML中删除电子邮件地址,并向它们注入JavaScript。这样一来,电子邮件地址就不会以其原始形式出现在任何HTTP流量中,这就是蜘蛛所在的。
我倾向于避免 mailto
因为它让人们很容易获取电子邮件地址。
如果您打算在网站上有联系页面,那么只需填写一个表格,然后他们提交您的服务器端代码并使用适当的电子邮件地址即可。
如果您需要获得其他人的地址,请使用数字、姓名、用户名以及某种方式来识别他们。
如果您在某个范围内只有一个电子邮件地址,即使您尝试隐藏它,它也可能会被获取,因为这些程序可能非常复杂,因为查找电子邮件地址就是它们的目的。
与大多数秘密一样,如果您不希望其他人获得它们,请不要将它们放在页面上。
我通常将它们分为单独的零件,然后使用JavaScript重组它们。最终的JavaScript执行了一个文档。编写以写出HTML。
IE
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>";
如果您不需要邮件链接,则可以替换 @ 符号 在
示例:山姆 在 example.com