2009-03-30 2 views
10

Я пытаюсь придумать обфускатор электронной почты JavaScript, чтобы уменьшить вероятность спама в электронных письмах, перечисленных на веб-сайте. Прямо сейчас у меня есть обфускатор, основанный на JavaScript, который использует комбинацию HTML-кодировки. & JavaScript для прозрачного преобразования обфускации в обычный почтовый ящик.Хороший неинтрузивный антиобщественный почтовый обфускатор?

Что я делаю это:

Форматирование «электронная почта:» часть HREF в ссылках быть HTML закодирована как:

mailto: 

Я также закодировать электронную почту, заменив @ знак (a), так что электронная почта читает что-то вроде:

stackoverflow(a)example.com 

затем я использую некоторые JavaScript, чтобы расшифровать все почтовые ссылки, которые имеют этот (a) войдите в систему по электронной почте и преобразуйте их в @ при загрузке страницы.

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

Мне было интересно, было ли лучше (менее навязчивым (или в лучшем случае, не очень навязчивым), но более устойчивым к спамеру) способом обфускации писем на веб-странице.

Как и в случае любого типа обфускации, если человек или компьютер могут легко дефискурировать его, тогда спамер может легко сделать то же самое. Из-за этого я не ожидаю безупречной обфускации, однако мне было любопытно посмотреть, какие другие предложения были там. Поиск Google не показал никаких решений, которые я считаю лучшими, чем мое текущее решение. Мне было интересно, есть ли другие хорошие альтернативы.

+0

Care пересмотреть эту страницу Dan и отметьте ответ, как принято? Ответ Скотта сработал для меня. – Gray

ответ

0

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

Как указано Steve Gilham, не так сложно получить электронное письмо с помощью OCR. И текстовые браузеры не поддерживают их. Таким образом, решение Скотта, вероятно, является лучшим решением.

7

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

0

Я использовал этот генератор http://www.wbwip.com/wbw/emailencoder.html сервис на некоторое время, и он отлично работает. Обычно я использую части закодированного адреса, а часть - нет.

Например ...

[email protected] == user@po.com

Я мог бы изменить, чтобы ...

[email protected] == user@po.com

1

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

<script type="text/javascript"> 
//<![CDATA[ 
    scrambler('[email protected]||mo'); 
//]]> 
</script> 
<noscript> 
    <img src="[email protected]||mo" alt="Emailadresse" /> 
</noscript> 

scramble является очень простой функцией JavaScript, я думаю, вы легко могли понять, что он делает. (Это приведет к: <a href="mailto:[email protected]">[email protected]</a>) scrambler.php - это то же самое, за исключением php и gd backend для генерации изображений.

Придумайте что-то, что не связано с некоторыми кодировками или заменой чего-то другим.

EDIT: Вот мой алго:

function scrambler (text) { 
    parts = text.split("||"); 
    var reverse = function (s) { 
    var ret =''; 
    for (var i=s.length-1;i>=0;i--) 
     ret+=s.charAt(i); 
    return ret; 
    } 
    text = reverse(parts[0])+reverse(parts[1]); 
    document.write(text); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^