Как бороться со сканированием web-страниц для сбора адресов

В январе 2003 года я наткнулся на описание способа борьбы со сканироваем web-страниц для поиска адресов электроной почты. Немного творчески переработав увиденное я сделал следующий скрипт:

function spamblockmailto (domain, account, text) {
	var myat = String.fromCharCode(64); // @
	document.write('<a href="mailto:');
	document.write(account + myat + domain);
	if (text==null || text.length==0) {
		document.write('\">'); document.write(account + myat + domain);
	} else
		document.write('\" title=\"'+text+'\">'+text);
	document.write('<\/a>');&
}
Что бы воспользоватся этой функцией включите в текст страницы "подключение" скрипта внутри тегов <head>...</head>, например так:

<head>
...
<script type="text/javascript" src="путь_к_файлу/spamblock.js"></script>
<title>Заголовок страницы</title>
...
</head>
<body>
...
а саму ссылку пишите так

spamblockmailto('yandex.ru','no13','мой адрес');
что бы получить

или так

spamblockmailto('yandex.ru','no13');
что бы получить

Судя по комментариям автор не против.

Надеюсь и вам пригодится. Думаю спамеры еще не додумались до обработки скриптов в своих программах. Да и врядли будут это делать - большая нагрузка может получится. А для защиты от "лобовой" атаки достаточно периодически переименовывать функцию, менять местами аргументы, добавлять новые.

Если все же найдется такой маньяк, для него готова ловушка. Но это уже на любителя :). Расширяем многократно описаный способ "добавить головной боли спамеру" - страницу фиктивных адресов. Но адреса пишем не ручками (вот еще!), а скриптом:

var offset, name_length;
var address;

// Список доменов стран можно взять здесь
// http://www.iana.org/cctld/cctld-whois.htm
var TLD_list = [
	'com','net','biz','info','name',
	'ac','ad','ae','af','ag','ai','al','am','an','ao','aq','ar','as','at','au','aw','az',
	'ba','bb','bd','be','bf','bg','bh','bi','bj','bm','bn','bo','br','bs','bt','bv','bw','by','bz',
	'ca','cc','cd','cf','cg','ch','ci','ck','cl','cm','cn','co','cr','cu','cv','cx','cy','cz',
	'de','dj','dk','dm','do','dz',
	'ec','ee','eg','eh','er','es','et',
	'fi','fj','fk','fm','fo','fr',
	'ga','gd','ge','gf','gg','gh','gi','gl','gm','gn','gp','gq','gr','gs','gt','gu','gw','gy',
	'hk','hm','hn','hr','ht','hu',
	'id','ie','il','im','in','io','iq','ir','is','it',
	'je','jm','jo','jp',
	'ke','kg','kh','ki','km','kn','kp','kr','kw','ky','kz',
	'la','lb','lc','li','lk','lr','ls','lt','lu','lv','ly',
	'ma','mc','md','mg','mh','mk','ml','mm','mn','mo','mp','mq','mr','ms','mt','mu','mv','mw','mx','my','mz',
	'na','nc','ne','nf','ng','ni','nl','no','np','nr','nu','nz',
	'om',
	'pa','pe','pf','pg','ph','pk','pl','pm','pn','pr','ps','pt','pw','py',
	'qa',
	'ru','rw',
	'sa','sb','sc','sd','se','sg','sh','si','sj','sk','sl','sm','sn','so','sr','st','sv','sy','sz',
	'tc','td','tf','tg','tj','tk','tm','tn','to','tp','tr','tt','tv','tw','tz',
	'ua','ug','uk','um','us','uy','uz',
	'va','vc','ve','vg','vi','vn','vu',
	'wf','ws',
	'ye','yt','yu',
	'za','zm','zw'];

// Таких циклов может быть много. Спамеры продают из миллионами? Подарим им 100 миллионов адресов!
for (var i=0;i<100000000;i++) {
	address = '';
	name_length = Math.floor(Math.random()*14) + 1;
	for (var c=0;c<name_length;c++) {
		address = address + String.fromCharCode(Math.floor(Math.random()*26)+97);
	}
	address = address + '@';
	name_length = Math.floor(Math.random()*24) + 1;
	for (var c=0;c<name_length;c++)
		address = address + String.fromCharCode(Math.floor(Math.random()*26)+97);
	address = address + '.';
	name_length = Math.floor(Math.random()*8) + 1;
	for (var c=0;c<name_length;c++)
		address = address + String.fromCharCode(Math.floor(Math.random()*26)+97);
	address = address + '.' + TLD_list[Math.floor(Math.random()*TLD_list.length)];
	document.write('<a href="mailto:');
	document.write(address);
	document.write('">');
	document.write(address);
	document.write('</a>');
	name_length = Math.floor(Math.random()*132) + 1;
	for (var c=0;c<name_length;c++)
		document.write(String.fromCharCode(Math.floor(Math.random()*224)+32));
}
Всталяем этот скрипт между <body>...</body> страницы-ловушки. Теперь на главной странице делаем невидимую ссылку (прозрачная картинка 1x1 где-то в углу, невидимый фрейм или что-то другое по вашему выбору) на страницу c этим скриптом - готово! Ловись спамер - большой и маленький :)

Такая готовая страница лежит здесь, не заходите туда броузером!

Если будут какие вопросы - пишите, адрес вверху.

Найти: на

Последние изменения Mon Aug 04 12:04:14 EEST 2003 @419 /Internet Time/

Яндекс цитирования
Hosted by uCoz