使用JavaScript混淆电子邮件

问题描述 投票:3回答:1

我知道这个问题已经被问过很多次了,并且普遍的共识是,垃圾邮件机器人总是会最终找到一种收集电子邮件的方法,因此这是一个失败的原因。但是,我希望在创建的页面上可以看到新创建的电子邮件,并且希望至少是某些东西保护它免受垃圾邮件机器人的攻击。这是我想使用的一种简单的JavaScript技术:

$(document).ready(function() {
  setEmailAddress("[email protected]");
});

function setEmailAddress(emailValue) {
  $("#spanTest").append($("<a>").attr("href", "javascript:location='mailto:" + obfuscateString(emailValue) + "';void 0").text(obfuscateString(emailValue)));
}

function obfuscateString(plaintext) {
  var obfuscated = "";

  for (var i = 0; i < plaintext.length; i++) {
    obfuscated += "\\u00" + plaintext.charCodeAt(i).toString(16);
  }

  return obfuscated;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<span id="spanTest"></span>

这里是问题:

  1. 如果从数据库中提取电子邮件[email protected]并传递给方法setEmailAddress,则由于机器人首先爬网的html找不到电子邮件,我是否仍需要对其进行混淆这页纸?

  2. 您会注意到锚点的链接文本没有被混淆。如果我也需要混淆该部分,是否可以不使用eval而实现?

    Note

  3. :我已经在使用reCaptcha
的页面上建立了一个联系表单,但是此查询是针对我希望同时在页面上看到电子邮件的情况。

编辑:阅读评论后,我认为我需要强调第一个问题。 2以上。请参阅上面的更新代码。

如您所见,我也试图隐藏/模糊链接文本。我知道我需要通过方法document.writeobfuscateString产生的结果,但是不建议为此使用eval。有没有办法混淆这部分文字?

我知道这个问题已经被问过很多次了,并且普遍的共识是,垃圾邮件机器人总是会最终找到一种收集电子邮件的方法,因此这是一个失败的原因。但是我想要一个...

javascript jquery obfuscation
1个回答
0
投票

所以我最终使用了以下内容:

© www.soinside.com 2019 - 2024. All rights reserved.