我有以下JavaScript代码:
<script type='text/javascript'>
var v2="xxxxx";
var v7=unescape("%2%3432jklsjdkls%");
var v5=v2.length;
var v1="";
for(var v4=0;v4<v5;v4++){
v1+=String.fromCharCode(v2.charCodeAt(v4)^v7.charCodeAt(v4));
}
document.write('<a href="javascript:void(0)" onclick="window.location=\'mail\u0074o\u003a'+v1+'?subject='+'\'">'+'test(at)test(dot)com<\/a>');
</script>
此代码在一行,我没有其他可能性。现在我必须更改电子邮件地址,但我需要v2
和v7
这是我无法创建的。
你知道这个片段的来源吗?您是否知道另一种安全的算法(不仅仅是采用ASCI值)?这里使用ASCII码,XOR连接和加密值+密钥。
答案 0 :(得分:12)
我会做一些更简单,同样有效的事情:
<a href="javascript:window.location.href = 'mailto:' + ['john','smith.com'].join('@')">john<!---->@<!---->smith.com</a>
mailto:
链接已被混淆且无法读取机器人<span>
display: none
答案 1 :(得分:8)
这里提到了两个外部工具。对于这两种情况,您需要先使用电子邮件生成Javascript代码。
<!-- Add these lines to <head></head> -->
<script type="text/javascript"> <!--
function UnCryptMailto( s )
{
var n = 0;
var r = "";
for( var i = 0; i < s.length; i++)
{
n = s.charCodeAt( i );
if( n >= 8364 )
{
n = 128;
}
r += String.fromCharCode( n - 1 );
}
return r;
}
function linkTo_UnCryptMailto( s )
{
location.href=UnCryptMailto( s );
}
// --> </script>
<!-- Use above link to generate your crypted email (example): -->
<a href="javascript:linkTo_UnCryptMailto('nbjmup;uftuAuftu/dpn');">test [at] test [dot] com</a>
ANTI-SPAM EMAIL LINK OBFUSCATOR
<script type="text/javascript" language="javascript">
<!--
// Email obfuscator script 2.1 by Tim Williams, University of Arizona
// Random encryption key feature coded by Andrew Moulden
// This code is freeware provided these four comment lines remain intact
// A wizard to generate this code is at http://www.jottings.com/obfuscator/
{ coded = "34M3@34M3.nmp"
key = "594NIGdDgELkcwoAbPQirZaYCn1mWhURt0syV7Ojpqf8H3XMFvlezJTS2ux6KB"
shift=coded.length
link=""
for (i=0; i<coded.length; i++) {
if (key.indexOf(coded.charAt(i))==-1) {
ltr = coded.charAt(i)
link += (ltr)
}
else {
ltr = (key.indexOf(coded.charAt(i))-shift+key.length) % key.length
link += (key.charAt(ltr))
}
}
document.write("<a href='mailto:"+link+"'>Example</a>")
}
//-->
</script><noscript>Sorry, you need Javascript on to email me.</noscript>
这个工具最初是由The University of Arizona的Tim Williams构思和编写的。随机的代码 每次使用该工具时生成不同的加密密钥是由Andrew Moulden编写的。 Celtic Productions Ltd的Ross Killen也创建了一个PHP版本,以便在Web应用程序中使用这种技术。
此代码作为免费软件发布,前提是作者的信用等完全如图所示。
答案 2 :(得分:2)
我刚刚发现this page列出了一些方法,这些方法已在2018年的1.5年实验中得到测试,例如
direction: rtl
似乎垃圾邮件机器人越来越先进。
答案 3 :(得分:1)
另一个很棒的工具是来自Google的reCAPTCHA工具,它实际上保护了所提供的电子邮件地址,允许用户在显示完整的电子邮件地址之前输入屏幕上显示的字符。请参阅此处的链接:reCAPTCHA
答案 4 :(得分:1)
虽然我发现许多解决方案很复杂,但是简单的javascript可以解决问题,只需在脚本中替换您的域名即可。
<a class="email" data-email="support"></a>
<script>
var emailLinks = document.getElementsByClassName('email');
for (i = 0; i < emailLinks.length; i++) {
var ctrl = emailLinks[i];
var email = ctrl.getAttribute('data-email') + '@' + document.location.host;
ctrl.href= 'mailto:' + email;
ctrl.innerText = email;
}
</script>