Форум: "Прочее";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];
ВнизКак работают спам-роботы? Найти похожие ветки
← →
cyborg © (2006-08-02 17:18) [0]Кто нибудь в курсе как бороться со спамом на форуме?
Ситуация такая, на форуме у меня пишут спамеры, некоторые сообщения даже крякозябрами, следовательно возникли подозрения, что это пишут (рассылают) какой-то программой.
Сегодня утром изменил имена полей ввода сообщения, теперь по старым именам не принимает сообщения. Сейчас смотрю, такие же сообщения (темы) в нескольких экземплярах опять на форуме, часть из них нормальный шрифт, часть крякозябрами.
Ну не может быть, что это спамер лично сидит, открывает странички на форуме и оставляет сообщения по несколько штук.
У меня подозрение, что спам-бот грузит страницу форума, ищет поля ввода, заполняет и отсылает все данные формы. Но как он разбирается что это поле для названия темы, а это для сообщения!?
Как бороться, есть мысли?
← →
vidiv © (2006-08-02 17:23) [1]Ввод простого числового кода хорошо себя зарекомендовал, ИМХО.
Или часть (типа секретную) формы можно заполнять javascript-ом. Далеко не все спам-роботы смогут выполнить javascript :)
← →
Ketmar © (2006-08-02 17:25) [2]мыслей много, но неконкретных. а в принципе, если подумать -- по сути все страницы отправки похожи. название темы обычно -- однострочный ввод, текст -- многострочный, кнопка отправить -- первая или передаёт нечто вроде "submit" и ты пы.
можно, конечно, каждый раз динамически строить страницу наобум или делать извраты с JS. а можно не пускать нерегистрированых. %-)
← →
cyborg © (2006-08-02 17:25) [3]> [1] vidiv © (02.08.06 17:23)
> Ввод простого числового кода хорошо себя зарекомендовал,
Да, только мне, как пользователю, такая система не нравится.
← →
antonn © (2006-08-02 17:27) [4]есть идея, только не знаю, как ее сделать, на тот случай, если отправляют с загруженной страницы.
допустим есть поле ввода(имя, тема), создаем еще одно такое же, но невидимое(скрытое и тп). Первое называем date("d.m.Y"); (php), во второе запихываем это же значение, но его имя известно("поле_номер_два"). При субмите можно сделать так?if(isset($_POST["submit"])){
if(!$_POST[$_POST["поле_номер_два"]]==""){
усе ок
}
}
просто я не знаю, заработает вторая строка или нет...
← →
vidiv © (2006-08-02 17:27) [5]
> Да, только мне, как пользователю, такая система не нравится.
Тогда остаются "извраты с JS" =)
← →
Marser © (2006-08-02 17:34) [6]> а можно не пускать нерегистрированых. %-)
90-95% забаненых у Экслера - там регистрация с авторизацией, спамеры.
← →
vidiv © (2006-08-02 17:36) [7]Вот пример очень слабого изврата с JS:
Общее:
<?
$FormSectet = "asdfghj=))) CODE asdasd";
?>
При создании формы:
<?
$code = md5(uniqid(rand(0,65535), true));
$setcode = md5(str_replace("CODE", $code, $FormSectet));
?>
<form>
<input type="hidden" name="code" value="<?=$code?>" />
<input type="hidden" name="setcode" id="setcode" value="" />
...
</form>
<script language="javascript" type="text/javascript">
document.getElementById("setcode").value = "<?=$setcode?>";
</script>
При проверке:
<?
if (md5(str_replace("CODE", $_POST["code"], $FormSectet))!=$_POST["setcode"]) {
echo "пошел вон, спамер вонючий";
}
?>
PS: набрал но не проверял :)
← →
cyborg © (2006-08-02 17:45) [8]> [7] vidiv © (02.08.06 17:36)
У меня там уже есть секретное слово, меняющееся, но подставлять его ява скриптом в форму я не догадался :)
Попробую.
← →
vidiv © (2006-08-02 17:51) [9]
> У меня там уже есть секретное слово, меняющееся, но подставлять
> его ява скриптом в форму я не догадался :)
>
> Попробую.
Можно еще сложнее сделать, при создании:<?
$code = md5(uniqid(rand(0,65535), true));
$setcode = md5(str_replace("CODE", $code, $FormSectet));
?>
<form>
<input type="hidden" name="code" value="<?=$code?>" />
<input type="hidden" name="setcode" id="setcode" value="" />
...
<textarea id="textbox"></textarea>
...
</form>
<script language="javascript" type="text/javascript">
function fillcode() {
document.getElementById("setcode").value = "<?=$setcode?>";
}
document.getElementById("textbox").onfocus=fillcode;
</script>
Разумно ведь предположить, что нельзя заполнить поле, не передав ему фокус :)
← →
Vitalik © (2006-08-02 17:54) [10]
> Да, только мне, как пользователю, такая система не нравится.
На самом деле ввод числового кода - не единственный способ отличить живого спамера от спамера-робота ;)
Я, например, встречал такие гостевухи, в которых пользователю задавался простой вопрос, ответ на который общеизвестен.
Скажем, "введите пятый цвет радуги". По-моему очень элегантный способ. А как вам?
← →
cyborg © (2006-08-02 17:57) [11]Сделал, вроде работает.
Отключаю в Опере ява скрипт, говорит "Изменён код доступа", пущай теперь спамеры извилину напрягают :)
← →
cyborg © (2006-08-02 17:57) [12]Забыл :)
Спасибо за совет!
← →
Gero © (2006-08-02 17:59) [13]> [10] Vitalik © (02.08.06 17:54)
Если я не знаю, какой у радуги пятый цвет, то я пролетаю, так?
← →
Gero © (2006-08-02 18:07) [14]Бороться лучше всего так: http://files.rsdn.ru/29342/facecontrol.png
← →
Kerk © (2006-08-02 18:08) [15]Все эти картинки давно научились обходить весьма эффективно
← →
Marser © (2006-08-02 18:10) [16]А если всунуть в спам-робот нейронную сеть, наученную на тысяче вариантов парочки защит? :-)
← →
vidiv © (2006-08-02 18:11) [17]
> Все эти картинки давно научились обходить весьма эффективно
да ну =)))
Декаративный шрифт + особенность начертания + правильная интеграция = hren обойдешь :)
> Vitalik © (02.08.06 17:54) [10]
>
> > Да, только мне, как пользователю, такая система не нравится.
>
>
> На самом деле ввод числового кода - не единственный способ
> отличить живого спамера от спамера-робота ;)
>
> Я, например, встречал такие гостевухи, в которых пользователю
> задавался простой вопрос, ответ на который общеизвестен.
>
> Скажем, "введите пятый цвет радуги". По-моему очень элегантный
> способ. А как вам?
Я, например, не знал раньше как по английски земля, а это был вопрос по умолчанью для QIP :) Вот так вот не получилось поздравить человека по аське :(
← →
Kerk © (2006-08-02 18:13) [18][17] vidiv © (02.08.06 18:11)
> > Все эти картинки давно научились обходить весьма эффективно
>
> да ну =)))
> Декаративный шрифт + особенность начертания + правильная
> интеграция = hren обойдешь :)
1) Делаешь сайт
2) Закачиваешь тонну порно-фоток
3) Пишешь скрипт, выдирающий картинки с форм постинга разных форумов
4) Заставляешь юзеров их распознавать между просмотрами порнухи
5) Получив значение, постишь спам
← →
Marser © (2006-08-02 18:19) [19]> [18] Kerk © (02.08.06 18:13)
> [17] vidiv © (02.08.06 18:11)
> > > Все эти картинки давно научились обходить весьма эффективно
> >
> > да ну =)))
> > Декаративный шрифт + особенность начертания + правильная
>
> > интеграция = hren обойдешь :)
>
> 1) Делаешь сайт
> 2) Закачиваешь тонну порно-фоток
> 3) Пишешь скрипт, выдирающий картинки с форм постинга разных
> форумов
> 4) Заставляешь юзеров их распознавать между просмотрами
> порнухи
> 5) Получив значение, постишь спам
А разве картинки не генерятся автоматом?
← →
vidiv © (2006-08-02 18:20) [20]
> 1) Делаешь сайт
> 2) Закачиваешь тонну порно-фоток
> 3) Пишешь скрипт, выдирающий картинки с форм постинга разных
> форумов
> 4) Заставляешь юзеров их распознавать между просмотрами
> порнухи
> 5) Получив значение, постишь спам
это только теория на данный момент?
Во всяком случае в данной борьбе приемущество на стороне веб-программеров, ибо нынешние браузеры много чего поддерживают :)
← →
antonn © (2006-08-02 19:00) [21]Vitalik © (02.08.06 17:54) [10]
Скажем, "введите пятый цвет радуги". По-моему очень элегантный способ. А как вам?
к своему стыду я задумался:) хороший вопрос, пришлось вспоминать "каждый охотник..."
← →
Kerk © (2006-08-02 19:31) [22]Marser © (02.08.06 18:19) [19]
А разве картинки не генерятся автоматом?
Эти сгенеренные автоматом картинки юзеры и распознают.
vidiv © (02.08.06 18:20) [20]
это только теория на данный момент?
Насколько я знаю, нет
← →
atruhin © (2006-08-02 19:52) [23]> это только теория на данный момент?
Один из распространенных алгоритмов
← →
VirEx © (2006-08-02 20:21) [24]добавил на свой генерацию кукисов (при заходе на страницу), и проверку кукисов (при добавлении поста) - ..и спама пкачто нет
возможно бот даже не грузит страницу а шлет post запросы сразу на url
может ошибаюсь, но спамеры возможно делают так:
1.
спамер - не бот, лазит по сайтам, либо сканит программкой ищущей через поисковик все странички содержащие слова: guest submit и т.п.
(при этом добавляет в базу данных URL гостевой странички)
2.
настраивает спамера - бота (скрипт, программка), который по таймеру делает post запросы на URL из этой базы
зы. не успел добавить в ветку про харизму, вот: :)
"харизма это человеческое качество, позволяющее концентрировать на себе внимание окружающих и манипулировать им
моё мнение такое"
← →
Anatoly Podgoretsky © (2006-08-02 20:55) [25]cyborg © (02.08.06 17:25) [3]
Спамерам тоже не нравится :-)
← →
Vitalik © (2006-08-02 20:55) [26]
> Если я не знаю, какой у радуги пятый цвет, то я пролетаю,
> так?
Ага, типа того.
← →
Marser © (2006-08-02 21:04) [27]> [25] Anatoly Podgoretsky © (02.08.06 20:55)
> cyborg © (02.08.06 17:25) [3]
> Спамерам тоже не нравится :-)
Это потому, что спамер тоже пользователь :-)
← →
vrem (2006-08-02 21:06) [28]>Если я не знаю, какой у радуги пятый цвет
Каждый охотник желает знать где сидит фазан.
- вспоминай на букву г.
← →
cyborg © (2006-08-03 06:53) [29]> [25] Anatoly Podgoretsky © (02.08.06 20:55)
У нас ведь цель попить кровь спамеру. Эдакая война, кто у кого крови больше выпет. Думаю, что спамеры пока выигрывают :)
Но сегодня я праздную маленькую победу, спама пока нет :)
← →
cyborg © (2006-08-03 06:54) [30]> [29] cyborg © (03.08.06 06:53)
> У нас ведь цель попить кровь спамеру
Недоговорил :)
У нас ведь цель попить кровь спамеру, а не пользователю.
← →
SPeller © (2006-08-03 07:16) [31]Vitalik © (02.08.06 17:54) [10]
введите пятый цвет радуги
А я не знаю :) Меня это поставило бы в тупик. Пришлось бы лезть в яндекс и узнавать. Поэтому нафиг такие общеизвестные вопросы )
Kerk © (02.08.06 18:08) [15]
Все эти картинки давно научились обходить весьма эффективно
А если на картинке не просто писать код, а писать кучу кодов, и словами на картинке писать, какой из них нужно выбрать? ;)
cyborg © (03.08.06 6:53) [29]
Но сегодня я праздную маленькую победу, спама пока нет :)
Запретить гостям постить - лучшее средство )
← →
vitalik © (2006-08-03 07:32) [32]
> А я не знаю :) Меня это поставило бы в тупик. Пришлось бы
> лезть в яндекс и узнавать. Поэтому нафиг такие общеизвестные
> вопросы )
А мне нравится эта идея... я пожалуй буду её использовать.
А если человек не знает ответы на вопросы, которые проходят в начальных классах школы... Стоит ли ему вообще давать возможность постить?
Я даже, пожалуй, и обставлю это именно таким образом: чтобы оставить пост, нужно пройти испытание.
← →
VirEx © (2006-08-03 07:45) [33]
Я даже, пожалуй, и обставлю это именно таким образом: чтобы оставить пост, нужно пройти испытание.
----
я думаю если при каждом посте испытание - юзер задолбается, поэтому лучше один раз, и "запомнить его"
← →
vidiv © (2006-08-03 09:10) [34]еще вариант:
Отправьте слово ПОСТ на короткий номер 1234*.
Полученный ответом код введи в поле: [ ].
* Внимание услуга платная. Подробности тут. :)
← →
Ketmar © (2006-08-03 09:57) [35]> [28] vrem (02.08.06 21:06)
на букву "г"? коричневый, что ли?
> [32] vitalik © (03.08.06 07:32)
> не знает ответы на вопросы, которые проходят в начальных
> классах школы
неплохая программа Light Alloy регистрируется при помощи ответов на общеизвестные загадки. я её регистрирую при помощи распаковки и подглядывания ответов в .EXE. потому что когда я её ставлю, мне охота не загадки решать, а кино смотреть.
← →
atruhin © (2006-08-03 10:49) [36]> я её регистрирую при помощи распаковки и подглядывания ответов
> в .EXE.
Да уж чем только люди не маятся!!!!
Там вроде со 2-3 тыка мышкой можно получить загадку вроде: Висит груша нельзя скушать.
← →
Ketmar © (2006-08-03 11:10) [37]> [36] atruhin © (03.08.06 10:49)
лично наблюдал, как человек раз 10-15 запускал аллой и офигевал от вопросв. после этого я аллой распаковал и почитал всё, что надо.
← →
Kerk © (2006-08-03 11:31) [38][31] SPeller © (03.08.06 07:16)
> А если на картинке не просто писать код, а писать кучу кодов,
> и словами на картинке писать, какой из них нужно выбрать?
> ;)
Алгоритмом, который я описал выше, и такое легко обходится :)
← →
Grom PE © (2006-08-03 12:44) [39]Kerk © (03.08.06 11:31) [38]
Тогда пояснительные слова к картинке должны быть не на картинке, а рядом, текстом. =)
← →
DesWind © (2006-08-03 12:48) [40]LA-болшьше расчитан на незнание русского языка.
← →
cyborg © (2006-08-14 18:56) [41]Во до чего спамеры додумались
Предыдущие меры сработали на 100%, спамовых сообщений небыло.
Нашли теперь на форуме лазейку, зарегистрировали форумы 3 штуки, в настройках, в шапке, заполнили свой спам со ссылками на всякие сайты.
Я их естествено удалил.
Сейчас поиск в яндексе делаю по домену, смотрю, на других сайтах (форумах, объявлениях) ссылки на сайт, ведущие на те удалённые форумы. А сообщения содержат примерно такой текст "куплю автомобиль" и и.д.
Вот теперь боюсь как бы мой домен в антиспам списки не попал :(
Ещё они сволочи регистрируют пользователей, и в данных пишут грёбаные рекламируемые сайты, но эту лазейку я перекрыл, у пользователей, которые ничего не писали, анкета просто не показывает данные.
← →
tesseract © (2006-08-15 14:07) [42]не моё но мож кому пригодиться :
Избавится от автоматического поста и не напрягать посетителя с вводом
графического кода позволит следующий алгоритм:
# Антиробот - против автопостов #
function antibot($text)
{
$text = substr($text, 1, -4);
$sear = array(""1"i",""2"i",""3"i",""4"i",""5"i",""6"i",""7"i",""8"i",""9"i",""0"i");
$repl = array("a","b","c","d","e","f","g","h","i","j");
$text = preg_replace ($sear, $repl, $text);
return $text;
}
/*
// вставляем анти-робоспам
$antitime = time();
$antiname = antibot($antitime);
echo "<input name="".$antiname."" type="hidden" value="".$antitime."">";
#----------
// проверяем анти-робоспам
$ver1time = time();
$ver2time = time()-"9999";
$ver1name = antibot($ver1time);
$ver2name = antibot($ver2time);
if ((strip_tags($_POST[$ver1name])<$ver1time and strip_tags($_POST[$ver1name])>$ver2time) or
(strip_tags($_POST[$ver2name])<$ver1time and strip_tags($_POST[$ver2name])>$ver2time))
{
$antibot = "1"; // антибот даёт добро на post
} else {
$antibot = "-1"; // антибот запрещает этот post
}
*/
PS: в функции "замена цифры на буквы" обязательно замените a-j на что-нибудь своё.
PPS: Код успешно работает около двух лет на нескольких сайтах.
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];
Память: 0.58 MB
Время: 0.043 c