No Spam-2


Прислал: Spectator [ 01.06.2001 @ 04:02 ]
Раздел:: [ Веб-технологии ]


Продолжаем заметку про спам ( http://webscript.ru///spectator.ru/issues/260 ).

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

JavaScript.

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

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

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

Но если мы заглянем в source этой страницы, то мы увидим не просто "Это текст", а яваскрипт, приведенный выше. Конечно, писать что-то вроде document.write('mailto:spectator@mail.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-скрипт, вы разберетесь сами...

p.s. Добавления и багфиксы будут вот здесь ( http://webscript.ru///spectator.ru/issues/267 ). Ждите.