Шифрование почтовых адресов электронной почты с помощью встроенного JavaScript - PullRequest
5 голосов
/ 08 февраля 2012

У меня есть следующий код 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 и зашифрованное значение + ключ.

Ответы [ 3 ]

12 голосов
/ 28 августа 2013

Я бы сказал о чем-то более простом и столь же эффективном, как это:

<a href="javascript:window.location.href = 'mailto:' + ['john','smith.com'].join('@')">john<!---->@<!---->smith.com</a>

  • mailto: ссылка скрыта и нечитаема для ботов
  • html комментарии используются как нежелательные, поэтому спам-боты не будут читать текст ссылки, пока они скрыты от пользователя.Может быть любой тип мусора, например <span> с display: none
8 голосов
/ 08 февраля 2012

Здесь упоминаются два внешних инструмента. Для обоих вам необходимо сначала сгенерировать свой код Javascript вместе с электронной почтой.

Шифрование электронной почты 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>

Обфускатор против спама по электронной почте

<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>

Этот инструмент был первоначально задуман и написан Тимом Уильямсом из Университета Аризоны . Код для случайного генерировать новый ключ шифрования каждый раз, когда инструмент используется, был написан Эндрю Моулденом. Росс Киллен из Celtic Productions Ltd также создал версию PHP, позволяющую использовать эту технику в веб-приложениях.

Этот код распространяется бесплатно, при условии, что авторские кредиты и т. Д. Остаются в точности такими, как показано.

1 голос
/ 30 августа 2013

Еще одним отличным инструментом, который можно использовать, является инструмент reCAPTCHA от Google, где он фактически защищает адрес электронной почты, предоставленный пользователю, позволяя ему вводить символ, отображаемый на экране, до раскрытия полного адреса электронной почты.Смотрите ссылку здесь: reCAPTCHA

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...