Щит для 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. Все это может быть дополнительным образом перемешано и запутано, чтобы разобраться в месеве странных символов было нереально. Само собой, программисты уже создали множество софтин, делающие всю эту работу за тебя. Каждая из программ имеет свои плюсы и минусы, поэтому из большого ассортимента тулз я выбрал всего три, возможности которых сейчас и опишу. |