10

我正在尝试使用 JavaScript 电子邮件混淆器来减少网站上列出的电子邮件中出现垃圾邮件的机会。现在我有一个基于 JavaScript 的混淆器,它使用 HTML 编码和 JavaScript 的组合将混淆的电子邮件透明地转换为普通电子邮件。

我要做的是:

将链接中 href 的“mailto:”部分格式化为 HTML 编码,如:

mailto:

我还对电子邮件进行了编码,将@符号替换为(a),以便电子邮件内容如下:

stackoverflow(a)example.com

然后,我使用一些 JavaScript 来破译电子邮件中具有此(a)标志的所有 mailto 链接,并将它们转换为@页面加载。

这工作得很好。对于使用启用了 JavaScript 的浏览器的人来说,他们会看到一切正常。对于没有启用 JavaScript 的人,我认识的每个邮件客户端都会认为电子邮件地址无效,但是用户应该能够推断出更正符号所需的内容。

我想知道是否有更好的(侵入性较小(或充其量不是侵入性很强)但更能抵抗垃圾邮件发送者)的方式来混淆网页上的电子邮件。

与任何类型的混淆一样,如果人或计算机可以轻松地对其进行去混淆,那么垃圾邮件发送者也可以轻松地做到这一点。正因为如此,我并不期待一个万无一失的混淆,但是我很想知道还有什么其他建议。搜索 Google 并没有发现任何我认为比当前解决方案更好的解决方案。我想知道是否还有其他好的选择。

4

4 回答 4

7

我过去使用HiveLogic Enkoder取得了相当大的成功。如果有什么你可能想看看 Dan 的编码是如何工作的,因为它可能会给你一些想法来制作一个更强大的混淆器。

于 2009-03-31T16:57:55.743 回答
1

如果你真的想保护电子邮件地址,除了为非 JavaScript 用户生成图像之外别无他法。
我曾经使用过这样的东西:

<script type="text/javascript">
//<![CDATA[
     scrambler('c.arb@oof||mo');
//]]>
</script>
<noscript>
    <img src="scrambler.php?t=c.arb@oof||mo" alt="Emailadresse" />
</noscript>

scramble是一个非常简单的 JavaScript 函数,我想你很容易就能弄清楚它的作用。(这将导致<a href="mailto:foo@bar.com">foo@bar.com</a>:)scrambler.php是相同的,除了在 php 和 gd 后端生成图像。

找出与某些编码技巧或用其他东西代替的东西无关的东西。

编辑:这是我的算法:

function scrambler (text) {
  parts = text.split("||");
  var reverse = function (s) {
    var ret ='';
    for (var i=s.length-1;i>=0;i--)
      ret+=s.charAt(i);
    return ret;
  }
  text = reverse(parts[0])+reverse(parts[1]);
  document.write(text);
}
于 2009-12-08T12:14:52.037 回答
0

为计算机混淆电子邮件的一种方法是将电子邮件写为图像而不是文本。这样,人类仍然很容易阅读电子邮件地址,而对于计算机来说却很难。

正如Steve Gilham所说,使用 OCR 获取电子邮件并不难。纯文本浏览器不支持它们。因此,斯科特的解决方案可能是最好的解决方案。

于 2009-03-30T22:06:02.097 回答
0

我已经使用这个生成器http://www.wbwip.com/wbw/emailencoder.html服务有一段时间了,效果很好。我通常使用编码地址的一部分和不使用的部分。

例如 ...

用户@po.com ==&#117;&#115;&#101;&#114;&#064;&#112;&#111;&#046;&#099;&#111;&#109;

我可能会换成...

用户@po.com ==u&#115;&#101;&#114;&#064;&#112;&#111;&#046;&#099;&#111;m

于 2009-12-08T12:06:03.040 回答