我正在尝试使用JavaScript电子邮件混淆器来减少网站上列出的电子邮件中垃圾邮件的可能性。现在我有了一个基于JavaScript的混淆器,它使用HTML编码和放大器的组合。 JavaScript将混淆的电子邮件透明地转换为普通电子邮件。
我的工作是:
将链接中的href的“mailto:”部分格式化为HTML编码,如:
mailto:
我还对电子邮件进行编码,将@
符号替换为(a)
,以便电子邮件显示如下内容:
stackoverflow(a)example.com
然后,我使用一些JavaScript来破译电子邮件中包含此(a)
符号的所有mailto链接,并在页面加载时将其转换为@
。
这很有效。对于使用启用了JavaScript的浏览器的用户,他们会看到一切正常。对于没有启用JavaScript的人,我知道的每个邮件客户端都会认为该电子邮件地址无效,但是用户应该能够推断出更正符号所需的内容。
我想知道是否有更好的(更少侵入性(或充其量,不是非常侵入性)但更具垃圾邮件阻止性)在网页上混淆电子邮件的方式。
与任何类型的混淆一样,如果人或计算机可以轻易地对其进行去混淆,那么垃圾邮件发送者可以轻松地做同样的事情。因此,我并不期待一个万无一失的混淆,但我很想知道其他建议是什么。搜索Google并没有透露任何我认为比现有解决方案更好的解决方案。我想知道是否还有其他好的选择。
答案 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 == user@po.com
我可能会改为......
user@po.com == user@po.com