Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #85, ЯНВАРЬ 2006 г.

Щит для web-контента

Докучаев Дмитрий aka Forb

Хакер, номер #085, стр. 085-056-2


forb@real.xakep.ru

Но может быть такое, что вражеский робот будет грабить поле текста (блок <a></a>), поэтому на странице вообще не нужно светить никаких мыльников, а просто, скажем, заменить адрес ником на форуме. Вуа-ля, конструкция превратилась в нечто подобное:

<a href=”forb@real.xakep.ru”>Форб</a>

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

<head>

<title>Защита от спама</title>

<script language="JavaScript">

function email (login, domain)

{

mail = login + "@" + domain;

document.write (mail);

}

</script>

</head>

<body>

E-mail: <script>email("forb","real.xakep.ru");</script>

</body>

Вот очень простая и совершенная защита, которую вряд ли осилит спамерский робот. Думаю, идея тебе понятна: при необходимости печати е-мейла, запускается функция mail(), которой передается имя и почтовый домен. В функции происходит слияние этой информации с «собакой» и на выходе получается вполне рабочий адрес. Подобную защиту обойти очень непросто, посему пауки просто игнорируют, то есть «не замечают» реальных адресов.

Наконец, можно попробовать модернизировать скрипт, включив в него какое-нибудь дополнительное кодирование, либо скрестить его с Unicode-защитой. Здесь ты сам себе архитектор :).

В наше время особую популярность завоевали языки Perl и PHP, с помощью которых также можно защититься от виртуальных супостатов. Первое, что приходит в голову — это использовать несложный скрипт, который при регистрации участника заносил e-mail в специальную базу. Каждый адрес должен иметь уникальный номер. Затем в качестве параметра «href» помещается ссылка на скрипт с этим номером, а последний запускает почтовую программу, либо просто отображает нужный адрес. Для примера напишу конструкцию, которая вполне может иметь место в твоей HTML-страничке:

<a href=/cgi-bin/mail.pl?31337>Форб</a>.

После клика по моему нику, вызовется скрипт, который покажет email-адрес, либо запустит почтовую программу (web-интерфейс) для отправки молебного письма :).

[программный рай]

Легко понять, что весь HTML-контент можно защитить определенным кодированием, при котором тело документа некоторым образом криптуется, а непосредственно перед отображением пользователю - расшифровывается при помощи «загрузчика», написанного на JavaScript. Все это может быть дополнительным образом перемешано и запутано, чтобы разобраться в месеве странных символов было нереально. Само собой, программисты уже создали множество софтин, делающие всю эту работу за тебя. Каждая из программ имеет свои плюсы и минусы, поэтому из большого ассортимента тулз я выбрал всего три, возможности которых сейчас и опишу.

Назад на стр. 085-056-1  Содержание  Вперед на стр. 085-056-3