Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Защита от спам-ботов: всё гениальное просто !
 
 автор: DDK   (28.11.2006 в 17:45)   письмо автору
 
 

Мне вот тут в голову пришла одна выдумка, позволяющая оградить скрипты гостевых и т.д. от автопостинга ботами, находящими самостоятельно в кодах страниц формы с дальнейшим автоматическим распознаванием отсылаемых input-ов. Метод очень прост: доминирующее поле ввода (текст сообщения, например) вписывать в форму Ява-Скриптом ! Ведь боты при обходе страниц получают html-код этих страниц, но если вставлять поля ввода на в форму не прямо, а яваскриптом, то бот не найдет поля в форме.

Нет, не назову, конечно, этот метод гениальным, но, имхо, он очень прост и эффективен :)

Вот наглядный, и тоже простейший пример:


<html>
<head>
<title>Simple outboting example</title>
<script language="JavaScript">
<!--//
function writeinputs() {
    sendform.innerHTML = '<input type="Text" name="message"><br><input type="Submit" value="Send !">';
    return;
}
//-->
</script>
</head>
<body onload="writeinputs();">

<form name="sendform" action="post.php" method="post">
<!--Бот ищет здесь инпуты, которых фактически нет-->
</form>

</body>
</html>


Просто хотел поделиться соображениями...

   
 
 автор: ihoru   (28.11.2006 в 17:57)   письмо автору
 
   для: DDK   (28.11.2006 в 17:45)
 

Мне идея очень понравилась!
Обязательно ею воспользуюсь!
Надеюсь, тебе платить не надо :)) ггг

   
 
 автор: targa   (29.11.2006 в 06:43)   письмо автору
 
   для: DDK   (28.11.2006 в 17:45)
 

Кажется что-то подобное уже встречал.

Мне другая идея в голову.
Чтоб имя поля в форме было каждый раз разное.
Допустим есть текстовое поле.
Имя ему генерим динамически. А в форме в скрытом поле (у него имя статичное) храним имя этого текстового поля.
При обработке формы в РНР читаем имя текстового поля и уже тогда читаем его.
В принципе имя текстового поля можно хранить и в сессии.

   
 
 автор: SHAman   (29.11.2006 в 09:55)   письмо автору
 
   для: targa   (29.11.2006 в 06:43)
 

А я видел еще проще. Делаем поле ввода с нормальным именем. Скажем, surname. И делаем его невидимым при помощи стилей. На сервере проверяем. Если поле заполнено - посылаем бота нафиг.

   
 
 автор: ihoru   (29.11.2006 в 13:52)   письмо автору
 
   для: SHAman   (29.11.2006 в 09:55)
 

а если кто-то отключил стили?? хотя такое редкость, и скорее исключение, чем правило, но все-таки...

   
 
 автор: SHAman   (29.11.2006 в 14:24)   письмо автору
 
   для: ihoru   (29.11.2006 в 13:52)
 

а если кто-то отключил JavaScript? Это бывает чаще...

   
 
 автор: Axxil   (29.11.2006 в 17:12)   письмо автору
 
   для: targa   (29.11.2006 в 06:43)
 

Проще всего просто прямо спросить:

Вы робот?
<input type="radio" name="asdfsdafs112"  value="Yes" checked> Да
<input type="radio" name="asdfsdafs112"  value="No"> Сам ты робот!

   
 
 автор: ddhvvn   (29.11.2006 в 17:15)   письмо автору
 
   для: Axxil   (29.11.2006 в 17:12)
 

Вот из все предложенных вариантов я бы выбрал вариант Axxilа

Кстати я такое уже видел на разных сайтах.

   
 
 автор: Lelik   (29.11.2006 в 23:14)   письмо автору
 
   для: ddhvvn   (29.11.2006 в 17:15)
 

и надолго ли это?
мне на работе показывали как спамеры пробиваются через антиспамескую защиту, а этот вариант очнь прост... хотя все гениальное просто

   
 
 автор: DDK   (30.11.2006 в 08:32)   письмо автору
 
   для: Lelik   (29.11.2006 в 23:14)
 

Вот именно... все эти радио-баттоны и динамические имена - под это всё боты могут адаптироваться. А вот JS выполнять они, думаю, не научатся.

   
 
 автор: Саня   (30.11.2006 в 11:36)   письмо автору
 
   для: DDK   (30.11.2006 в 08:32)
 

Кхм... Мне, к примеру, ничего не стоит один раз зайти и подсмотреть код, а затем написать что-то вроде этого:
<?
...
set_time_limit(0);
$data "message=".urlencode("Бесплатное порно - http://example.com");
while ( 
true ) {
  
fwrite($socket"POST /board.php HTTP/1.0\r\n".
                  
"Host: example.com\r\n".
                  
"Content-Type: application/x-www-form-urlencoded\r\n".
                  
"Content-Length: ".strlen($data)."\r\n".$data."\r\n\r\n");
}
И все ваши попытки обойти воображаемого бота пойдут лесом. Но это в случае целенаправленного спама (а чаще всего так оно и есть). Можно пойти дальше и реализовать некоторые функции движка JS в боте... но это уже вопрос больших денег. Не стоит думать, что JS ботам не под силу...

   
 
 автор: SHAman   (30.11.2006 в 13:46)   письмо автору
 
   для: Саня   (30.11.2006 в 11:36)
 

Согласен. Заспамить можно любую гостевуху. Но есть огромное количество программ, которые спамят абстрактно, то есть, просто гуляют роботы и оставляют месаги. Эти боты - стандартные и никогда не поймут что их наебманули. Более того, они даже не поймут, удачно ли разместили объяву.

А JS прочитать довольно просто. Берешь получаешь всю страничку целиком и анализируешь ее на предмет name в тегах input и textarea.

Повторяю, при целенаправленном спаме можно зафлудить ЛЮБУЮ книгу.

   
 
 автор: DDK   (30.11.2006 в 14:31)   письмо автору
 
   для: Саня   (30.11.2006 в 11:36)
 

Я же написал, что это защита не "от человекобота", а от простого бота, которые на данный момент преобладают :)

   
 
 автор: Саня   (30.11.2006 в 19:29)   письмо автору
 
   для: DDK   (30.11.2006 в 14:31)
 

А вы уверены, что сейчас преобладают простые боты, которые ничего не умеют кроме поиска блока <form> и вычленения инпутов? Вы ошибаетесь.
Например, если браузер нормально всё обрабатывает, так почему бы не использовать его в своих целях? Взять, к примеру, движок gecko, немного модифицировать, и написать маааленькую программу, которая будет в цикле заставлять движок делать всю грязную работу... Ботов пишут люди. И эти люди прекрасно осведомлены о возможностях JS.

Как-то к нам на форум заходил ботовод. И вот что он говорил:
вам повезло, чуваки - я сам бота писал. поэтому скажу что они могут:
1.Они могут перемещаться по многоуровневым форумам спокойно, парсят html и видят DOM - могут обойти все обьекты на
странице по индексу.
...далее идёт список того, что они могут...

...сейчас боты в чистом виде уже не актульны.
в интернете уже бродят КИБОРГИ - операторы (люди) в оболочке из ботовских программ.
и картинки с цифрами и вопросами их уже
неостанавливают НИКАК. их производительность ниже бота, но намного выше человека, т.к. практически все функции автоматизированы, кроме критичных, и сайт
он видит в сокращеном виде, в виде таблицы. их цель - быстрые форумы с большой посещаемостью и развитой модерацией...

...приведенное выше показывает, в какой попе Вы находитесь..
вы пытаетесь использовать устаревшую систему защиты против очень технологичных программ,
по уровню выше форумных / чатовых технологий и проигрываете.
действительно, хорошие боты не выложены в инете и их нигде нельзя скачать....

...все ресурсы яндекса находятся уже более 2 лет под контролем ботов
если интересует, на plati.ru можно купить базу логинов yandex.ru / narod.ru...


Да и так, если посмотреть, простых ботов натравляют только на популярные скрипты с известными дырками. Для эксклюзива существует то, о чем я писал/цитировал выше.

   
 
 автор: Саня   (30.11.2006 в 20:04)   письмо автору
 
   для: Саня   (30.11.2006 в 19:29)
 

Нет, я не призываю отказаться от использования мелких и идеальных, на первый взгляд, ухищрений. Просто имейте ввиду, что боты хоть и не всесильны, но очень развиты.

   
 
 автор: Axxil   (01.12.2006 в 10:23)   письмо автору
 
   для: Саня   (30.11.2006 в 11:36)
 

Круто!
Заходим на каждый(!) сайт, подсматриваем код и пишем под него робота.

Замут.

   
 
 автор: Саня   (01.12.2006 в 11:32)   письмо автору
 
   для: Axxil   (01.12.2006 в 10:23)
 

Ну зачем же кидаться в крайности? Тем более я не говорил о том, что нужно заходить на каждый сайт и писать программу конкретно под него.

   
 
 автор: Axxil   (01.12.2006 в 11:43)   письмо автору
 
   для: Саня   (01.12.2006 в 11:32)
 

Ну из песни слов не выкинешь:

Кхм... Мне, к примеру, ничего не стоит один раз зайти и подсмотреть код, а затем написать что-то вроде этого:

   
 
 автор: Саня   (01.12.2006 в 12:16)   письмо автору
 
   для: Axxil   (01.12.2006 в 11:43)
 

Не вижу слов "...это необходимо сделать для всех сайтов, что встретишь на своём пути!".

   
 
 автор: Axxil   (01.12.2006 в 13:01)   письмо автору
 
   для: Саня   (01.12.2006 в 12:16)
 

let it be

   
 
 автор: Axxil   (01.12.2006 в 10:22)   письмо автору
 
   для: DDK   (30.11.2006 в 08:32)
 

> Вот именно... все эти радио-баттоны и динамические имена - под это всё боты могут
> адаптироваться
Ну-ка адаптируте мне бота под вариант радиобаттона. Тока чтоб универсальное решение было а не под конкретный случай.
Да в жизни бот не научиься нажимать на кнопки.
А спам напрямую на скрипт добавления сообщения решается элементарной прошивкой сессии.

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

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования