当前位置:  开发笔记 > 编程语言 > 正文

从垃圾邮件机器人隐藏电子邮件的有效方法

如何解决《从垃圾邮件机器人隐藏电子邮件的有效方法》经验,为你挑选了12个好方法。

在我的主页上,我正在使用此方法隐藏垃圾邮件机器人的电子邮件:

Contact me

你怎么看待这件事?有效吗?您还知道或使用其他哪些方法?



1> Fuhrmanator..:

这是我所使用的方法,与服务器侧包括,例如,其中emailObfuscator.include包含以下内容:



要包含地址,我使用JavaScript:



因为自2005年以来我一直通过Gmail收到电子邮件,所以垃圾邮件几乎不是问题.所以,我不能说这种方法有多有效.你可能想要阅读这个产生这个图的研究(尽管它已经很老了):

在此输入图像描述


最新,最完​​整的研究探索同一个想法:http://www.grall.name/posts/1/antiSpam-emailAddressObfuscation.html

2> cyptus..:

使用CSS中的内容和attr:

.cryptedmail:after {
  content: attr(data-name) "@" attr(data-domain) "." attr(data-tld); 
}


3> roundcrisis..:

看看这种方式,非常聪明并使用CSS.

CSS

span.reverse {
  unicode-bidi: bidi-override;
  direction: rtl;
}

HTML

moc.rehtrebttam@retsambew

然后,上面的CSS将覆盖读取方向,并以正确的顺序将文本呈现给用户.

希望能帮助到你

干杯


这肯定很有趣.但不幸的是,这不是可点击的,不适用于复制/粘贴,而忽略了任何非CSS浏览器,如盲文阅读器.
将反向电子邮件地址与RegEx匹配就像将其与非反向匹配一样简单.垃圾邮件是一项价值十亿美元的业务,而垃圾邮件发送者甚至没有使用自己的CPU周期来屏蔽屏幕.事实上,他们已经阅读了这个对话,并相应地调整了他们的方法.计算机可读的任何东西都将被机器人读取.无论是由CSS还是JavaScript执行.
@JaniHyytiäinen我不同意.他们不支付CPU的事实并不意味着他们拥有无限的资源.如果运行JS解释器的成本太少,那么他们就会禁用它.

4> tvanfosson..:

我对此有一个完全不同的看法.我使用MailHide.

MailHide是Google的一个系统,用户需要完成reCAPTCHA测试,然后向他们显示电子邮件.


虽然此链接可能会回答这个问题,但最好在此处包含答案的基本部分并提供参考链接.如果链接的页面发生更改,则仅链接的答案可能会无效.
虽然我普遍同意这种观点,但在这种情况下,答案是使用特定工具.如果链接消失了,我会删除答案.
请注意,Google在2018年比赛时禁用了MailHide.与"免费"Google服务一样:只要他们可以从中获取数据,他们就会提供这些服务,一旦他们得到他们需要的东西,他们就会放弃它.最不可靠的公司提供免费服务.如果您需要转发任何您想要做的事情,我会远离谷歌或任何其他人的服务.

5> Andrew Swift..:

最初不是我的想法,但我找不到作者:

link

添加尽可能多的x.它非常适合读取,复制和粘贴,并且无法由机器人读取.


如果javascript被禁用,我的网站都没有工作;-)
只要您的地址不包含任何x,就可以正常工作.:-p但是,我知道,只需使用另一个字母.

6> rmeador..:

我认为唯一可以实现的万无一失的方法是创建一个"联系我"页面,该页面是一个提交到发送到您的电子邮件地址的脚本的表单.这样,您的地址根本不会暴露给公众.出于某种原因,这可能是不合需要的,但我认为这是一个非常好的解决方案.当我被迫将某人的电子邮件地址从他们的网站复制/粘贴到我的邮件客户端并向他们发送消息时,它经常让我感到烦恼; 我宁愿通过他们网站上的表单来做到这一点.此外,这种方法允许您向您发送匿名评论等.请确保使用某种反机器人方案(如验证码)保护您的表单.这里讨论了很多关于SO的内容.


这可能会隐藏您的电子邮件地址,但它根本不会阻止垃圾邮件,除非您使用验证码图像验证脚本保护您的表单.
唯一的问题是,除非您花时间将其复制并粘贴到其他位置,否则您没有所发送邮件的副本.我个人不介意复制和粘贴,但他们自己.
至于发件人没有副本:对于网络上的多种表格,我喜欢自己选择复制的选项.但是,通常这样的选项允许滥用匿名向任何人发送消息......

7> Galwegian..:

请参阅网页上的机器人安全地建立电子邮件地址?

我喜欢Facebook和其他人呈现您的电子邮件地址图像的方式.

我过去也曾使用过The Enkoder--说老实说非常好!



8> Matias..:

如果你有php支持,你可以这样做:


和scriptname.php:




9> Jani Hyytiäi..:

我知道很多人都不会喜欢我的答案,但请在翻阅之前考虑一下这里列出的要点.

任何易于机器读取的东西都很容易被垃圾邮件发送者读取.即使他们的行为对我们来说似乎很愚蠢,但他们并不是愚蠢的人.他们是创新和足智多谋的.他们不只是使用机器人来收集电子邮件,他们有大量的方法供他们使用,除此之外,他们只需支付新的电子邮件清单.这意味着,他们在全球范围内有成千上万的黑帽黑客来执行他们的工作.人们准备编写恶意软件的代码,这些恶意软件会刮掉其他人浏览器的屏幕,这些浏览器最终会使您尝试实现的任何方法变得毫无用处.这个帖子已被10多个这样的人读过,他们在嘲笑我们.他们中的一些人可能甚至无聊地流泪,发现我们无法对他们提出新的挑战.

请记住,您最终并不是想节省您的时间,而是节省其他人的时间.因此,请考虑在此花些时间.没有易于执行的魔术子弹可行.如果您在一家在网站上发布100个人的电子邮件的公司工作,并且每人每天可以减少1封垃圾邮件,我们每年都在谈论36500封垃圾邮件.如果删除这样的电子邮件平均需要5秒钟,我们每年谈论50个工作小时.更不用说减少烦恼了.那么,为什么不花几个小时呢?

不仅是您和接收电子邮件的人认为时间是资产.因此,您必须找到一种以这种方式对电子邮件地址进行模糊处理的方法,这样就无法破解它.如果你使用一些广泛使用的方法来混淆电子邮件,那么破解它真的是值得的.因此,如果不是数十或数十万封新鲜的电子邮件,那么饼干将会获得成千上万的信息.对他们来说,他们会得到钱.

所以,继续编写自己的方法.这是一个罕见的情况,重新发明轮子真的得到回报.使用非机器可读的方法,并且优选地需要一些用户交互而不牺牲用户体验.

我花了大约20分钟来编写一个我的意思的例子.在这个例子中,我使用KnockoutJS只是因为我喜欢它而且我知道你不会自己使用它.但无论如何它都无关紧要.这是一种未广泛使用的定制解决方案.破解它不会对此做出奖励,因为这样做的方法只能在广阔的互联网上的单个页面上工作.

这是小提琴:http://jsfiddle.net/hzaw6/

下面的代码并不是一个好代码的例子.但只是快速的代码示例,很难让机器弄清楚我们甚至在这里处理电子邮件.即使可以做到,也不会为大规模执行而付出代价.

是的,我知道它对IE = lte8不起作用,因为'无法获取未定义或空引用的属性'属性'但我只是不在乎,因为它只是方法的演示,而不是实际的实现,并不打算用于生产.随意编写自己的代码,这是更酷,技术上更坚固等.

哦,永远不会用html或javascript命名邮件或电子邮件.对于任何名为邮件或电子邮件的东西来说,刮掉DOM和窗口对象太简单了,并检查它是否包含与电子邮件匹配的内容.这就是为什么你不希望任何变量包含电子邮件的完整形式,这也是你希望用户在分配这些变量之前与页面交互的原因.如果您的javascript对象模型包含DOM就绪状态的任何电子邮件地址,那么您将它们暴露给垃圾邮件发送者.

HTML:

JS

function ViewModel(){
    var self = this;

    self.contacts = ko.observableArray([
        { firstName:'John', mPrefix: 'john.doe', domain: 'domain.com', lastName: 'Doe', department: 'Sales', phone: '+358 12 345 6789' },
        { firstName:'Joe', mPrefix: 'joe.w', domain: 'wonder.com', lastName: 'Wonder', department: 'Time wasting', phone: '+358 98 765 4321' },
        { firstName:'Mike', mPrefix: 'yo', domain: 'rappin.com', lastName: 'Rophone', department: 'Audio', phone: '+358 11 222 3333' }
    ]);
    self.msgMeToThis = ko.observable('');
    self.reveal = function(m, e){
        var name = e.target.attributes.href.value;
        name = name.replace('#', '');
        self.msgMeToThis(name);
    };
}
var viewModel = new ViewModel();
ko.applyBindings(viewModel);



10> ofaurax..:

您可以尝试使用hexa中的html实体隐藏字符(例如:@表示@).这是一个方便的解决方案,因为正确的浏览器会将其翻译,您可以拥有正常的链接.缺点是机器人可以理论上翻译它,但它有点不寻常.我用它来保护我博客上的电子邮件.

另一种解决方案是使用javascript来组装地址的一部分并在运行中解码地址.缺点是禁用javascript的浏览器不会显示您的地址.

最有效的解决方案是使用图像,但用户必须手动复制地址是一件痛苦的事.

您的解决方案非常好,因为您只为已禁用javascript的用户添加了一个缺点(手动编写@).你也可以更加安全:

onclick="this.href='mailto:' + 'admin' + '@' + 'domain.com'"



11> SimonDowdles..:

我最喜欢的方法之一是使用php来混淆电子邮件地址,一个典型的例子是将字符转换为HEX值,如下所示:

function myobfiscate($emailaddress){
 $email= $emailaddress;                
 $length = strlen($email);                         
 for ($i = 0; $i < $length; $i++){                
 $obfuscatedEmail .= "&#" . ord($email[$i]).";";
 }
 echo $obfuscatedEmail;
}

然后在我的标记中,我将简单地称之为:


然后检查你的来源,你会惊喜万分!



12> Aaron Esau..:

Spambots不会解释这一点,因为它是一个鲜为人知的方法:)

首先,定义css:

email:before {
    content: "admin";
}

email:after {
    content: "@example.com";
}

现在,无论您要显示电子邮件的何处,只需插入以下HTML:

和田田!

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有