Эффективный метод скрыть электронную почту от ботов спама

Для итерации объекта вы можете использовать:

let record = {'key1': 'value1', 'key2': {'test':'123'}, 'key3': [{'test1':'23'}]};

if(typeof record === 'object' && record != null){
   Object.keys(record).forEach((key)=>{        
     if(typeof record[key] == 'object' && record[key] != null){        
         //logic for the object        
     }else if(typeof record[key] == 'array' && record[key] != null){        
        //logic for array        
     }else {        
       //logic for other type        
     }        
   });        
}else if(typeof record === 'array'){
     record.forEach(r => {
          if(typeof r == 'object' && r != null){        
             //logic for the object        
          }else if(typeof r == 'array' && r != null){        
            //logic for array        
          }else {        
            //logic for other type        
          }
     });
}        
185
задан 6 revs, 3 users 72% 26 April 2015 в 00:28
поделиться

12 ответов

Сначала я удостоверился бы, что адрес электронной почты только показывает, когда Вам включили JavaScript. Таким образом, нет никакого простого текста, который может быть прочитан без JavaScript.

, Во-вторых, способ реализовать безопасную опцию, избегая эти <button> тег. Эти потребности тега, которые текст вставляет между тегами, который делает его читаемым компьютером. Вместо этого попробуйте <input type="button"> обработчиком JavaScript для onClick. Затем используйте все методы, упомянутые otherse для реализации безопасной почтовой нотации.

Еще одна опция состоит в том, чтобы иметь кнопку "Щелчком для наблюдения emailaddress". После того, как нажатый это изменяется в кодированное электронное письмо (символы в HTML-кодах). При другом щелчке это перенаправляет к функции 'mailto:email'

некодированная версия последней идеи с выбираемыми и невыбираемыми адресами электронной почты:

<html>
<body>
<script type="text/javascript">
      e1="@domain";
      e2="me";
      e3=".extension";
email_link="mailto:"+e2+e1+e3;
</script>
<input type="text" onClick="this.onClick=window.open(email_link);" value="Click for mail"/>
<input type="text" onClick="this.value=email;" value="Click for mail-address"/>
<input type="button" onClick="this.onClick=window.open(email_link);" value="Click for mail"/>
<input type="button" onClick="this.value=email;" value="Click for mail-address"/>
</body></html>

Видят, является ли это чем-то, что Вы хотели бы и объединили бы его с идеями других. Вы никогда не можете быть слишком уверены.

1
ответ дан Kevin Fegan 23 November 2019 в 05:52
поделиться

Это работает, если я щелкаю правой кнопкой по ссылке и выбираю "copy URL"? В противном случае это - очень не идеальная ситуация (я очень редко нажимаю на mailto ссылку, предпочитая копировать адрес электронной почты и вставлять его в мое почтовое приложение или везде, где еще мне нужен он в отдельном моменте вовремя).

я раньше был довольно параноидальной защитой моего почтового адреса онлайн (UseNet, сеть и т.п.), но в эти дни я подозреваю, что больше "возможных целей для спама" на самом деле сгенерировано, соответствуя локальным частям к доменам программно. Я основываю это на наличии, при случае, прошедший мои журналы почтового сервера. Имеют тенденцию быть довольно много попыток доставки к несуществующим адресам (включая усеченные версии приманки спама, которую я подвесил на UseNet назад в конце 90-х, когда очистка адреса была очень распространена).

1
ответ дан Vatine 23 November 2019 в 05:52
поделиться

Лучший метод, скрывающий адреса электронной почты, только хорош, пока программист бота не обнаруживает это "кодирование" и реализует алгоритм дешифрования.

параметр сценария JavaScript не будет работать долго, потому что существует много поискового робота, интерпретирующего JavaScript.

, по моему скромному мнению, нет никакого ответа.

2
ответ дан guerda 23 November 2019 в 05:52
поделиться

Существуют, вероятно, боты, которые распознают [at] и другие маскировки как @ символ. Таким образом, это не действительно эффективный метод.

Уверенный Вы могли использовать некоторую кодировку как URL, кодируют или ссылки символа HTML (или оба):

// PHP example
// encodes every character using URL encoding (%hh)
function foo($str) {
    $retVal = '';
    $length = strlen($str);
    for ($i=0; $i<$length; $i++) $retVal.=sprintf('%%%X', ord($str[$i]));
    return $retVal;
}
// encodes every character into HTML character references (&#xhh;)
function bar($str) {
    $retVal = '';
    $length = strlen($str);
    for ($i=0; $i<$length; $i++) $retVal.=sprintf('&#x%X;', ord($str[$i]));
    return $retVal;
}

$email = 'user@example.com';
echo '<a href="'.bar('mailto:?to=' . foo(','.$email.'')).'">mail me</a>';

// output
// <a href="&#x6D;&#x61;&#x69;&#x6C;&#x74;&#x6F;&#x3A;&#x3F;&#x74;&#x6F;&#x3D;&#x25;&#x32;&#x43;&#x25;&#x37;&#x35;&#x25;&#x37;&#x33;&#x25;&#x36;&#x35;&#x25;&#x37;&#x32;&#x25;&#x34;&#x30;&#x25;&#x36;&#x35;&#x25;&#x37;&#x38;&#x25;&#x36;&#x31;&#x25;&#x36;&#x44;&#x25;&#x37;&#x30;&#x25;&#x36;&#x43;&#x25;&#x36;&#x35;&#x25;&#x32;&#x45;&#x25;&#x36;&#x33;&#x25;&#x36;&#x46;&#x25;&#x36;&#x44;">mail me</a>

, Но поскольку законно использовать их, каждый browser/e-mail клиент должен обработать эту кодировку также.

2
ответ дан Gumbo 23 November 2019 в 05:52
поделиться

См. Делать адреса электронной почты безопасными от ботов на веб-странице?

мне нравится способ, которым Facebook и другие представляют изображение Вашего адреса электронной почты.

я также использовал Enkoder в прошлом - мысль, было очень хорошо быть честным!

15
ответ дан Community 23 November 2019 в 05:52
поделиться

Одно легкое решение состоит в том, чтобы использовать объекты HTML вместо фактических символов. Например, "me@example.com" будет преобразован в:

<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#109;&#101;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;">email me</A>
3
ответ дан Kevin Fegan 23 November 2019 в 05:52
поделиться

Можно попытаться скрыть символы с помощью объекты HTML в hexa (исключая: & #x40 для). Это - удобное решение, поскольку корректный браузер переведет его, и у Вас может быть нормальная ссылка. Недостаток состоит в том, что бот может перевести его theorically, но это немного необычно. Я использую это для защиты моей электронной почты на моем блоге.

Другое решение к javascript использования, чтобы собрать часть адреса и декодировать на лету адрес. Недостаток состоит в том, что отключенный JavaScript браузер не покажет Ваш адрес.

наиболее эффективное решение к , используют изображение , но это - боль для пользователя для копирования адреса вручную.

Ваше решение довольно хорошо , поскольку Вы только добавляете недостаток (пишущий вручную) только для пользователя, которым отключили JavaScript. Можно также быть более безопасными с:

onclick="this.href='mailto:' + 'admin' + '&#x40;' + 'domain.com'"
7
ответ дан ofaurax 23 November 2019 в 05:52
поделиться

Если у Вас есть поддержка php, можно сделать что-то вроде этого:

<img src="scriptname.php">

И scriptname.php:

<?php
header("Content-type: image/png");
// Your email address which will be shown in the image
$email    =    "you@yourdomain.com";
$length    =    (strlen($email)*8);
$im = @ImageCreate ($length, 20)
     or die ("Kann keinen neuen GD-Bild-Stream erzeugen");
$background_color = ImageColorAllocate ($im, 255, 255, 255); // White: 255,255,255
$text_color = ImageColorAllocate ($im, 55, 103, 122);
imagestring($im, 3,5,2,$email, $text_color);
imagepng ($im);
?>
10
ответ дан Matias 23 November 2019 в 05:52
поделиться

Я думаю единственный надежный метод, который Вы можете иметь, создает страницу Contact Me, которая является формой, которая отправляет сценарию, который отправляет на Ваш адрес электронной почты. Тем путем Ваш адрес никогда не выставляется общественности вообще. Это может быть нежелательным по некоторым причинам, но я думаю, что это - довольно хорошее решение. Это часто раздражает меня, когда я вынужден к скопировать/вставить чьему-то адресу электронной почты от их сайта до моего почтового клиента и отправляю им сообщение; я сделал бы его правильно через форму на их сайте. Кроме того, этот подход позволяет Вам отправлять анонимные комментарии Вам, и т.д. Просто убеждаться защитить свою форму с помощью некоторой схемы антибота, такой как капча. Существуют многие из них обсуждены здесь на ТАК.

16
ответ дан rmeador 23 November 2019 в 05:52
поделиться

У меня есть совершенно другое взятие на этом. Я использую MailHide для этого.

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

52
ответ дан Martin 23 November 2019 в 05:52
поделиться

Взгляните на этот путь , довольно умная и использующая CSS.

CSS

span.reverse {
  unicode-bidi: bidi-override;
  direction: rtl;
}

HTML

<span class="reverse">moc.rehtrebttam@retsambew</span>

CSS выше затем переопределит направление чтения и представит текст пользователю в правильном порядке.

Hope это помогает

Аплодисменты

82
ответ дан wittich 23 November 2019 в 05:52
поделиться

Один из моих любимых методов - обфускация адреса электронной почты с помощью php, классический пример - преобразование символов в HEX-значения так:

function myobfiscate($emailaddress){
 $email= $emailaddress;                
 $length = strlen($email);                         
 for ($i = 0; $i < $length; $i++){                
 $obfuscatedEmail .= "&#" . ord($email[$i]).";";
 }
 echo $obfuscatedEmail;
}

А затем в своей разметке я просто назову его так:

<a href="mailto:<?php echo myobfiscate('someone@somewhere.com')" title="Email me!"><?php echo myobfiscate('someone@somewhere.com');</a>

Затем изучите свой источник, вы будете приятно удивлены!

7
ответ дан 23 November 2019 в 05:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: