Сделать адреса электронной почты безопасными от ботов на веб-странице? - PullRequest
45 голосов
/ 02 октября 2008

При размещении адресов электронной почты на веб-странице вы размещаете их в виде текста следующим образом:

joe.somebody@company.com

или использовать хитрый трюк, чтобы попытаться обмануть ботов с харвестером по адресу электронной почты? Например:

Символы HTML Escape:

joe.somebody@company.com

Расшифровка JavaScript:

function XOR_Crypt(EmailAddress)
{
    Result = new String();
    for (var i = 0; i < EmailAddress.length; i++)
    {
        Result += String.fromCharCode(EmailAddress.charCodeAt(i) ^ 128);
    }
    document.write(Result);
}

XOR_Crypt("êïå®óïíåâïäùÀãïíðáîù®ãïí");

Человек Расшифровка:

joe.somebodyNOSPAM@company.com

joe.somebody AT company.com

Что вы используете или вообще беспокоитесь?

Ответы [ 22 ]

1 голос
/ 06 ноября 2009

Для вашего собственного адреса электронной почты я бы рекомендовал не беспокоиться об этом слишком сильно. Если вам необходимо сделать свой адрес электронной почты доступным для тысяч пользователей, я бы порекомендовал либо использовать адрес электронной почты (ванильный или через приложения Google), либо использовать высококачественный спам-фильтр.

Однако, при отображении адресов электронной почты других пользователей на вашем веб-сайте, я думаю, что требуется определенный уровень должной осмотрительности. К счастью, блогер по имени Silvan Mühlemann выполнил всю сложную работу за вас . Он опробовал различные методы запутывания в течение 1,5 лет и определил лучшие из них, большинство из которых включают трюки CSS или JavaScript, которые позволяют правильно отображать адрес в браузере, но могут запутать автоматические скребки.

1 голос
/ 02 октября 2008

Я делаю свой независимо от DOC@whever.com, а затем рядом с ним пишу «Удалить заглавные буквы»

1 голос
/ 02 октября 2008

Попробуйте генератор иконок электронной почты. http://services.nexodyne.com/email/

Конечно, есть еще несколько ботов OCR, которые могут получить это ..

1 голос
/ 02 октября 2008

В бесплатном Gmail есть потрясающий фильтр спама.

Если вы не хотите использовать Gmail напрямую, вы можете отправить электронное письмо в gmail и использовать переадресацию gmail, чтобы отправить его обратно вам после прохождения через фильтр спама.

В более сложной ситуации, когда вам нужно показать адрес @ business.com, вы можете указать public@business.com и переслать всю эту почту в учетную запись gmail, которая затем перенаправит ее обратно в real @ business. ком

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

Я получаю около 100 спама в день в своей учетной записи Gmail, но я не могу вспомнить, когда в последний раз один из них попадал в мой почтовый ящик.

Чтобы подвести итог, используйте хороший спам-фильтр, будь то Gmail или другой. Когда пользователь вводит или изменяет указанный адрес электронной почты, все равно, что использовать DRM для защиты от пиратства. Возложение бремени на «хорошего» парня не должно быть способом делать что-либо. :)

0 голосов
/ 18 сентября 2017

Шрифтовки

<link rel="stylesheet" href="path/to/font-awesome/css/font-awesome.min.css">

<p>myemail<i class="fa fa-at" aria-hidden="true"></i>mydomain.com</p>

http://fontawesome.io/

0 голосов
/ 10 июня 2014

Я только что написал следующее. Не знаю, хорошо ли это, но лучше, чем просто написать письмо в виде обычного текста. Многие роботы будут обмануты, но не все из них.

<script type="text/javascript">
    $(function () {
        setTimeout(function () {
            var m = ['com', '.', 'domain', '@', 'info', ':', 'mailto'].reverse().join('');

            /* Set the contact email url for each "contact us" links.*/
            $('.contactUsLink').prop("href", m);
        }, 200);
    });
</script>

Если робот решает эту проблему, нет необходимости добавлять больше кода "простой логики", например "if (1 == 1? '@': '')", Или добавлять элементы массива в другом порядке, поскольку робот просто уклоняется код в любом случае.

0 голосов
/ 06 марта 2014

Вариант 1. Разделите адрес электронной почты на несколько частей и создайте массив в JavaScript из этих частей. Затем соедините эти части в правильном порядке и используйте свойство .innerHTML, чтобы добавить адрес электронной почты на веб-страницу.

 <span id="email">  </span>   // blank tag

 <script>
 var parts = ["info", "XXXXabc", "com", "&#46;", "&#64;"];
 var email = parts[0] + parts[4] + parts[1] + parts[3] + parts[2];
 document.getElementById("email").innerHTML=email; 
 </script>

Вариант 2: использовать изображение вместо текста электронной почты

Сайт создателя изображения из текста: http://www.chxo.com/labelgen/

Вариант 3. Мы можем использовать AT вместо "@" и DOT вместо "."

т.е.:

 info(AT)XXXabc(DOT)com 
0 голосов
/ 06 марта 2010

Спам-боты со временем будут иметь свои собственные движки Javascript и CSS, поэтому я думаю, что вам не следует смотреть в этом направлении.

0 голосов
/ 02 октября 2008

Это зависит от того, что именно ваши потребности. Для большинства сайтов, с которыми я работаю, гораздо полезнее использовать форму «свяжитесь со мной / нами», которая отправляет электронное письмо из системы тому, с кем нужно связаться. Я знаю, что это не совсем то решение, которое вы ищете, но оно полностью защищает от сбора урожая, и до сих пор я никогда не видел спама, отправляемого через такую ​​форму. Это случится, но это очень редко, и вас никогда не собирают.

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

0 голосов
/ 02 октября 2008

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

...