电子邮件混淆真的会让自动收获变得更难吗?

时间:2009-08-11 09:41:35

标签: language-agnostic obfuscation email-address

许多用户和论坛程序试图通过混淆使自动电子邮件地址变得更加困难 - @被替换为“at”和。被替换为“点”,所以

 team@stackoverflow.com

现在变成

team at stackoverflow dot com

我不是正则表达式方面的专家而且我真的很好奇 - 这种混淆真的让自动收获更难吗?是否真的难以自动识别这些混淆的地址?

12 个答案:

答案 0 :(得分:33)

当然!

前一段时间我读过this article,其中显示了各种方法的有效性(以及相对程度)。 扭转一个已经反转的字符串似乎是目前相当不错的保护。

以下代码示例:

<style type="text/css">
   span.codedirection { unicode-bidi:bidi-override; direction: rtl; }
</style>

<p><span class="codedirection">moc.etalllit@7raboofnavlis</span></p>

将输出电子邮件,使其至少可读。

那就是说,这几乎是一场军备竞赛。但是,只要你处于领先地位,收获你的地址就会更加努力,而不是普通的非混淆地址。

答案 1 :(得分:10)

混淆技术与验证码属于同一类别。它们不可靠,并且比机器人更容易伤害普通用户。

Javascript混淆似乎受到了赞扬,但并不是银弹:今天要自动化浏览器进行电子邮件嗅探并不难。如果它可以在浏览器中显示,则可以收获它。您甚至可以想象一个机器人正在浏览浏览器窗口的屏幕截图,并使用OCR提取地址以击败您的百万美元混淆技术。

根据您想要混淆电子邮件的位置和原因,这些技术可能很有用:

  • 限制电子邮件的可见性:您可能会将您的网站/论坛上的电子邮件隐藏给匿名用户,新用户(几乎没有任何活动或迄今为止的帖子),甚至可以完全隐藏它们使用内置的私人消息功能替换成员之间的电子邮件联系。

  • 使用专门的垃圾邮件过滤的电子邮件:您将收到垃圾邮件,但它将仅限于此特定地址。当您需要向任何用户公开电子邮件地址时,这是一个很好的权衡。

  • 使用联系表单:虽然机器人非常擅长填写表单,但事实证明他们太擅长填写表单。 Hidden field techniques can filter most of the spam coming through your contact form

答案 2 :(得分:8)

当我看到这种类型的混淆时,我也会立即想到正则表达式。以这种方式收集“混淆”的电子邮件是件小事。

我曾经想过以这种方式发布我的电子邮件地址:

你可以在这里给我发邮件:

string myEmail = "";
myEmail = myEmail
          .Append ("myname")
          .Append ("@")
          .Append ("domain")
          .Append (".")
          .Append ("com");

谁没有成功,我的基础智力测验都失败了。

答案 3 :(得分:6)

垃圾邮件发送者以及您的用户很难识别该电子邮件地址。

来自维基百科的一篇很好的文章 Email obfuscation or address munging

  

隐藏电子邮件的一种常见方式   机器人和垃圾邮件发送者是创建一个   包含电子邮件地址的图片。   例如,Facebook就是这样做的。现在,   使用图像的电子邮件本质上   对于可访问性不好,因为文本   读者将无法阅读它。   但即便如此,还有几个   免费的角色识别程序   这样做很好解码   电子邮件的图像。

来自here

答案 4 :(得分:5)

我不确定它是否真的有助于垃圾邮件 - 但我已经学会了热爱Escape Encode Obfuscation的mailto:标签/电子邮件。示例标记:

<a href="%6D%61%69%6C%74%6F%3A%74%65%61%6D%40%73%74%61%63%6B%6F%76%65%72%66%6C%6F%77%2E%63%6F%6D">&#116;&#101;&#97;&#109;&#64;&#115;&#116;&#97;&#99;&#107;&#111;&#118;&#101;&#114;&#102;&#108;&#111;&#119;&#46;&#99;&#111;&#109;</a>

Mails team@stackoverflow.com

答案 5 :(得分:4)

在你的前门贴上“受ADT保护”标签是不合适的。

这会阻止有才华的窃贼进入你的房子吗?当然不是。

它是否会使隔壁的房子有一个未锁定的门和窗户中的iPod更具吸引力的目标?很有可能。

一个简单的未经过模糊处理的电子邮件刮刀将获得TONS的电子邮件。也许一个非常简单的正则表达式来选择非常常见的混淆方法是值得的。过去,你花了很多时间试图破译越来越少的电子邮件。

所有这一切,有一些聪明的混淆可能是值得的。

为了记录,我的电子邮件多年来一直在我的公共简历中以纯文本显示,因为我使用的是gmail,它有一个工作的垃圾邮件过滤器

答案 6 :(得分:3)

我想知道为什么到目前为止没有人提到ALAs解决方案。

Roel Van Gils在2007年撰写了一篇关于优质电子邮件混淆的文章

优雅电子邮件混淆只是一种 JavaScript电子邮件混淆技术,其中包含联系表单后备

  1. 通过将电子邮件地址转换为与联系表单相关的网址并应用ROT13转换来对电子邮件地址进行模糊处理
  2. mailto:mail@example.comcontact/mail+example+comcontact/znvy+rknzcyr+pbz
  3. 通过javascript contact/znvy+rknzcyr+pbz转换回mailto:mail@example.com
  4. 如果没有可用的JavaScript,浏览器将打开contact/znvy+rknzcyr+pbz作为后备广告。由于网址,联系表格将知道发送电子邮件的位置。
  5. http://www.alistapart.com/articles/gracefulemailobfuscation/

答案 7 :(得分:1)

它确实让它变得更难但是有很多非常聪明的刮刀可能没有多大帮助,因为大垃圾邮件发送者正在使用高质量的垃圾邮件工具。

答案 8 :(得分:1)

如何对抗spamers?使电子邮件地址对于没有大脑的东西(即计算机)不易识别。

非英语使用者是您的朋友:如果您的用户群是非英语社区,请切换到使用其他语言进行混淆:team_małpa_stackoverlow_kropka_com或team_Affenschwanz_stackoverflow_Punkt_com是分别为波兰语和德语社区提供的完全可识别的电子邮件地址。有些电子邮件收集者知道波兰语或德语,但大多数收割者只会理解英语。

如果你不能离开英语,那么切换到一些描述性的短语 - 比如:“为了在你的地址栏中发送消息写入团队,而不是写出符号AT,而不是写下我们网站的名称!”。

答案 9 :(得分:1)

要提供字面答案,是的,收获混淆地址比收集标准化地址更难。真正的问题是收割者是否会付出额外的努力,以及收割者的(主要的?次要?)障碍是否值得为用户带来可能的问题。

如果您要打扰地址或以其他方式将其转移到标准表格之外,您应该避免与您的方式保持一致 - 至少在同一网站上。

例如,如果大型社区网站上的每个电子邮件地址在标记中被颠倒并使用CSS或令牌替换(@变为'at')或任何其他可预测的方法正确呈现,则收割者将只写一个适用于您网站的瘦适配器。

以这种方式思考:如果只需要一行代码就可以在整个网站上“争夺”它们,那么只需要收集器一行代码就可以为您的网站“解读”它们。粗略地说。

在我看来,垃圾邮件已成为一个问题,而且许多数据库已被翻过来,我们无法隐藏我们的地址。相反,请考虑使用Defensio和Akismet等来帮助分类和阻止垃圾邮件。

答案 10 :(得分:1)

我有一个解决方案,好吧,更多的理论。 问题是,机器人解析页面。他们可以得到文本。即使它被放了 通过Javascript以一些复杂的方式进入页面。

所以,只有你 CSS3伪元素!它不是链接,但您的电子邮件将是可见的,永远不会是真正的文本。像这样的东西:

.email::after{ content:'myemail@gmail.com'; }

同样,这是一个理论,我不知道这些邪恶的人能够走多远,但我认为这是非常安全的。 (除非他们解析CSS文件,我认为他们不这样做)

答案 11 :(得分:0)

它确实在某种程度上变得更难,但即使在今天([dot][at])用户使用的简单文件也已过时,并且可以通过垃圾邮件发送者使用简单的正则表达式轻松捕获。 / p>

使用像图像一样简单的东西对于预期的人类读者来说是有用的和可读的,而不需要努力解密&#39;编码的电子邮件ID。

  

联系电子邮件:

如果你仍然对装有字符识别功能的垃圾邮件机器人感到偏执,那么这样的话会很有效。

它使用视错觉作为在人类思维中完成字母的一个优点,这是计算机视觉无法轻易理解的。应用类似CAPCHA的叠加层也可以提供帮助,但我怀疑你需要走得那么远。