好的非侵入式反垃圾邮件混淆器?

时间:2009-03-30 21:52:34

标签: javascript obfuscation spam-prevention email-spam

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

我的工作是:

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

mailto:

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

stackoverflow(a)example.com

然后,我使用一些JavaScript来破译电子邮件中包含此(a)符号的所有mailto链接,并在页面加载时将其转换为@

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

我想知道是否有更好的(更少侵入性(或充其量,不是非常侵入性)但更具垃圾邮件阻止性)在网页上混淆电子邮件的方式。

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

4 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分: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);
}

答案 2 :(得分:0)

混淆计算机电子邮件的一种方法是将电子邮件写为图像而不是文本。通过这种方式,人们仍然可以轻松地阅读电子邮件地址,而且计算机也很难。

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

答案 3 :(得分:0)

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

例如......

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

我可能会改为......

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