No Spam-2

Источник: http://spectator.ru/

Дмитрий Смирнов

Продолжаем заметку про спам.

Есть еще один способ бороться с роботами, собирающими email-адреса со страниц. Я даже удивлен, почему никто про него не вспомнил. Придется вспомнить мне.

JavaScript.

Как вы знаете (если знаете), javascript — это язык, который выполняется на стороне браузера, а не на стороне сервера, как, например, php. Поэтому сам скрипт находится в теле html-документа. На javascript’е есть такая функция — document.write(), которая выводит нужный текст в нужном месте. Например:

<script language=JavaScript> document.write(’Это текст’); </script>

Результат работы скрипта: .

Но если мы заглянем в source этой страницы, то мы увидим не просто «Это текст», а яваскрипт, приведенный выше. Конечно, писать что-то вроде document.write(’mailto:dmitry.smirnov@spectator.ru’) смысла нет, потому что робот все равно выцепит адрес, поэтому делаем примерно вот так:

<script language=JavaScript> document.write(’<a href=mailto:’); document.write(’spectator’+’%40’); document.write(’mail.ru>мыло</a>’); </script>

Результат работы скрипта:

%40 — это то же самое, что и «@». Чтобы никто не догадался…

Тем не менее, если быть параноиком, можно предположить, что робот, собирающий адреса, «понимает» document.write. То, что он целиком понимает javascript — это навряд ли, повторюсь еще раз — javascript испольняется браузером в момент вывода html-я, однако если смотреть в «исходник» страницы (а именно туда роботы и смотрят), то там будет «запутанный» яваскрипт.

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

<SCRIPT>
mailto=(’spectator’+’%40’+ ’mail.ru’);
document.write( ’<A href=mailto:’+mailto+’>мыло</a>’ );
</SCRIPT>

Работает вот так:

Осталось вспомнить про тех, у кого javascript отключен. Есть и такие оригиналы.

<SCRIPT>
mailto=(’spectator’+’%40’+ ’mail.ru’);
document.write( ’<A href=mailto:’+mailto+’>мыло</a>’ );
</SCRIPT>
<NOSCRIPT>
Включите javascript, чтобы увидеть email
</NOSCRIPT>

Дальше — дело техники. Как вставить в форум, гостевую книгу или еще куда-нибудь пару строчек на php, perl’е и прочем (зависит от вашего вкуса), чтобы скрипт сам из простого email-адреса делал вот такой java-скрипт, вы разберетесь сами…

From: Konstantin Bekreyev (Ulyanovsk State University)
To: Spectator

Добрый день

Я конечно не особый специалист, но почему бы проблему не решать вот
так? :)

<?
$usermail=’user@domain.com’;
for ($i=0;$i<strlen($usermail);$i++)
{ $mailto.="&#".ord($usermail[$i])."; }
echo ’<a href=&#109;&#97;&#105;&#108;&#116;&#111;&#58;$mailto >$mailto</a>’;
?>

идея понятна? :) правда может можно и оптимизировать наверно…

IMHO мало кто будет по такой подстроке искать… :> А проблем с
наличием или отсутствием javascript не будет…

---
With best regards, Konstantin V. Bekreyev
Ulyanovsk State University, Russia

В общем, идея в том, чтобы переводить символы в их «цифровые» аналоги, например это &#109;&#97;&#105;&#108;&#116;&#111;&#58 — то же самое, что и «mailto:»

Способ тоже хороший, только вот преобразовать их обратно в «нормальные» символы гораздо легче, чем javascript… Конечно, наверняка не все спамовые роботы это могут, то все-таки… «Продвинутые» — точно могут.

И еще один способ, весьма забавный:

<a href=mailto:obmanka@antispam.comonMouseOver= "this.href=’mail’+’to:’+’spectator’+’@’+’mail’+’.ru’">E-Mail</a>

Работает вот так: E-Mail