是的,我意识到这个问题已经被问及并回答了,但我对此有具体的问题,我觉得在这个帖子上并不清楚,我也不愿意在另一个帖子的混乱中迷失方向。
之前的主题表示,将Facebook的电子邮件地址呈现为图像的方式,对于商业/专业网站来说,这是一种过度的,不专业的用户体验。似乎普遍的共识是使用JavaScript document.write解决方案使用html实体或其他一些方法分解和/或使字符串不被简单的机器人读取。我正在构建的应用程序甚至不需要“mailto:”功能,我只需要显示电子邮件地址。此外,这是一个商业Web应用程序,因此它需要尽可能地看起来/行动。以下是我的问题:
如果我去document.write路由并传递每个字符的html实体版本,那么有没有足够复杂的网页抓取工具来执行javascript并拉动渲染文本呢?或者这被认为是最佳做法并完全(或几乎完全)垃圾邮件发送者证明?
图像解决方案有什么不专业?如果Facebook是世界上流量最高的应用程序之一,而且根本没有业余爱好者管理,为什么他们的方法在另一个关于这个主题的帖子中完全被驳回?
如果您的答案(如在另一个主题中)不打扰自己解决此问题并让用户的垃圾邮件过滤器完成所有工作,请解释您为什么这样做。我们正在显示他们给我们的用户电子邮件地址,我觉得有责任尽可能地保护他们。如果您觉得这是不必要的,请解释原因。
感谢。
答案 0 :(得分:4)
很多原因Javascript现在是一个很好的解决方案(随着景观的演变可能会有所改变)。
关于Facebook解决方案,我不认为它不专业,但我可以清楚地看到为什么纯粹主义者可能不同意。
答案 1 :(得分:4)
这不是垃圾邮件证明。如果有人查看您网站的代码并确定您用于电子邮件地址的模式,则可以编写特定代码以尝试解读该代码。
我不知道我会说这是不专业的,但它会阻止复制和粘贴功能,这是一个非常重要的事情。使用图像,您根本无法获得该功能。如果要将相对复杂的电子邮件地址复制到Outlook中的地址簿,该怎么办?您不得不求助于输入容易出错的内容。
将责任移交给用户垃圾邮件过滤器实际上是一个糟糕的回应。虽然我认为用户应该勤勉地防范垃圾邮件,但这并不能免除发布该地址的人的责任。
为此,试图以绝对安全的方式做到这一点几乎是不可能的。唯一的方法是使用代码用来解密编码的电子邮件地址的共享密钥。这样做的问题在于,因为javascript是在客户端解释的,所以没有任何东西可以让你对刮刀保密。
现在电子邮件地址的编码器通常可以正常工作,因为大多数电子邮件机器人收割机都不会关心每个站点的编码。他们将尝试使用最小的算法来获得最大的结果(否则就不值得付出代价)。因此,简单的编码器将击败大多数机器人。但是,如果某人真的想要查看您网站上的电子邮件,那么他们可以并且可能也很容易,因为编写地址的代码是公开可用的。
考虑到所有这些因素,Facebook走上图像路线是有道理的。因为他们可以改变图像以使OCR几乎不可能,他们几乎可以保证不会收获电子邮件地址。鉴于它们可能是世界上最大的电子邮件地址存储库之一,可以说它们比我们任何人都承受更重的负担,虽然不方便,却被迫沿着这条路走下去,以确保其庞大的用户群的安全性和隐私性。
答案 2 :(得分:3)
这是一篇很好的博客文章,比较了一些方法和基准。
http://techblog.tilllate.com/2008/07/20/ten-methods-to-obfuscate-e-mail-addresses-compared/