No Spam-2
Продолжаем заметку про спам.Есть еще один способ бороться с роботами, собирающими 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 rel=nofollow href=http://spectator.ru/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 rel=nofollow href=http://spectator.ru/mailto:’+mailto+’>мыло</a>’ );
</SCRIPT>
Работает вот так:
Осталось вспомнить про тех, у кого javascript отключен. Есть и такие оригиналы.
<SCRIPT>
mailto=(’spectator’+’%40’+ ’mail.ru’);
document.write( ’<A rel=nofollow href=http://spectator.ru/mailto:’+mailto+’>мыло</a>’ );
</SCRIPT>
<NOSCRIPT>
Включите javascript, чтобы увидеть email
</NOSCRIPT>
Дальше — дело техники. Как вставить в форум, гостевую книгу или еще куда-нибудь пару строчек на php, perl’е и прочем (зависит от вашего вкуса), чтобы скрипт сам из простого email-адреса делал вот такой java-скрипт, вы разберетесь сами...
From: Konstantin Bekreyev Добрый день
Я конечно не особый специалист, но почему бы проблему не решать вот <? идея понятна? :) правда может можно и оптимизировать наверно...
IMHO мало кто будет по такой подстроке искать... :> А проблем с ---
To: Spectator
так? :)
$usermail=’user@domain.com’;
for ($i=0;$i<strlen($usermail);$i++)
{ $mailto.="".ord($usermail[$i])."; }
echo ’<a rel=nofollow href=http://spectator.ru/mailto:$mailto>$mailto</a>’;
?>
наличием или отсутствием javascript не будет...
With best regards, Konstantin V. Bekreyev
Ulyanovsk State University, Russia
В общем, идея в том, чтобы переводить символы в их «цифровые» аналоги, например это mailto: — то же самое, что и «mailto:»
Способ тоже хороший, только вот преобразовать их обратно в «нормальные» символы гораздо легче, чем javascript... Конечно, наверняка не все спамовые роботы это могут, то все-таки... «Продвинутые» — точно могут.
И еще один способ, весьма забавный:
<a rel=nofollow href=http://spectator.ru/mailto:obmanka@antispam.comonMouseOver="this.rel=nofollow href=http://spectator.ru/’mail’+’to:’+’spectator’+’@’+’mail’+’.ru’">E-Mail</a>
Работает вот так: E-Mail