Хороший не навязчивый антиспамовый обфускатор электронной почты? - PullRequest
11 голосов
/ 31 марта 2009

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

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

Отформатируйте часть «mailto:» в href в ссылках, которые должны быть закодированы в HTML, как:

mailto:

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

stackoverflow(a)example.com

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

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

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

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

Ответы [ 4 ]

7 голосов
/ 31 марта 2009

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

1 голос
/ 08 декабря 2009

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

<script type="text/javascript">
//<![CDATA[
     scrambler('c.arb@oof||mo');
//]]>
</script>
<noscript>
    <img src="scrambler.php?t=c.arb@oof||mo" alt="Emailadresse" />
</noscript>

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

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

РЕДАКТИРОВАТЬ: Вот мой алгоритм:

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);
}
0 голосов
/ 08 декабря 2009

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

Например ...

user@po.com == &#117;&#115;&#101;&#114;&#064;&#112;&#111;&#046;&#099;&#111;&#109;

Я мог бы измениться на ...

user@po.com == u&#115;&#101;&#114;&#064;&#112;&#111;&#046;&#099;&#111;m

0 голосов
/ 31 марта 2009

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

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

...