Prime Anti-bot и русский язык

Поддержка старых модов или модов, созданных авторами не из нашего сообщества, а также любые вопросы, связанные с модами для phpBB 3.0.x, кроме относящихся к форуму Для авторов (phpBB 3.0.x).
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
edgar
phpBB 2.0.13
Сообщения: 917
Стаж: 21 год 1 месяц
Откуда: с Луны свалил...

Prime Anti-bot и русский язык

Сообщение edgar »

Внимание! Начиная с версии 3.0.6. в движок уже встроена возможность установки вопроса при регистрации. Данный мод более не актуален

Есть такой мод Prime Anti-bot. См. здесь
Такой же по функционалу как Anti Bot Question в phpbb 2, можно задать вопросы при регистрации и постинге гостя. Но установка проще и варианты вопросов и ответов прописываются не через админку в базу, а в файле. Если вопрос с картинкой, то тоже в файле прописывается путь к картинке.

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

Клюевые слова для поиска: антиспам, замучали спаммеры / спамеры, спам-боты, спамботы, защита от спама, спам на форуме, замучили спамеры, как бороться со спамом.
Последний раз редактировалось Rayden 25.01.2010 15:50, всего редактировалось 3 раза.
Причина: Добавление собщения о неактуальности мода
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

Re: Prime Anti-bot и русский язык

Сообщение Борис Бердичевский »

Вы сейчас упадёте со стула. По крайней мере, я едва не упал. :o
Вот каким способом регистрируются боты, обходя (ДА! ДА!) этот мод, Prime Anti-bot то есть.

Код: Выделить всё

04-05-2009 18:40:20 Question ->Знаменитый русский бард  Response ->[url=#file_links[d:\xrumer\all_url_kondrat_shop.txt,1,s]] #file_links[d:\xrumer\ext_kondrat_shop_ru_.txt,1,s]  [/url]
04-05-2009 19:03:32 Question ->Как зовут артистку Гурченко?  Response ->[url=#file_links[d:\xrumer\all_url_kondrat_shop.txt,1,s]] #file_links[d:\xrumer\ext_kondrat_shop_ru_.txt,1,s]  [/url]
Это распечатка моих логов. :idea:
Последний раз редактировалось Борис Бердичевский 04.05.2009 18:30, всего редактировалось 1 раз.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Alex_G
phpBB 1.4.1
Сообщения: 47
Стаж: 18 лет 10 месяцев
Откуда: Moscow

Re: Prime Anti-bot и русский язык

Сообщение Alex_G »

Я не понял. У них в файле "ext_kondrat_shop_ru_.txt" забиты ответы на вопросы что ли?
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

Re: Prime Anti-bot и русский язык

Сообщение Борис Бердичевский »

Похоже что так. А лохи-модоразработчики не допёрли выкидывать нафиг всякие [url= :lol:
Название файла говорит о том, что это наши, русские хакеры-спаммеры. Наш русский левша любую блоху подкует -- самый хитрый мод обойдёт! :mrgreen:
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

Re: Prime Anti-bot и русский язык

Сообщение Борис Бердичевский »

Короче.

File
includes/prime_captcha.php

Find

Код: Выделить всё

		foreach ($key_list as $idx => $valid_responses)			// The passkey phrase was encoded, so we need to find it rather than just accessing it directly (bummer)
Add before

Код: Выделить всё

		if ( stristr ( $user_response, '[url') !== FALSE )
		{
				$this->error = 'PRIME_CAPTCHA_INCORRECT';
		}
		else
		{
Find

Код: Выделить всё

		// If we made it here AND no error was assigned, then we did not find a passkey phrase, which shouldn't happen.
Add after
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Izya
Former team member
Сообщения: 408
Стаж: 18 лет
Откуда: Абакан, Сибирь
Благодарил (а): 1 раз
Поблагодарили: 28 раз

Re: Prime Anti-bot и русский язык

Сообщение Izya »

Изображение
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

Re: Prime Anti-bot и русский язык

Сообщение Борис Бердичевский »

Сейчас, когда я включил защиту именно на это, я посмотрю, будут ли ещё они регистрироваться.
Ибо, как я писАл в другой теме, раз в несколько недель/месяц бот всё же регистрировался.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

[FAQ] Предотвращение спама в phpbb3

Сообщение Борис Бердичевский »

Вот какое дело, уважаемый Izya. Спорить можно сколь угодно долго, теоретически анализируя, что должен был сделать бот и т.д. и т.п.
Но если вы обратили внимание на мою поправку (логгинг всех ответов), то должны признать, что никакой регистрации без того, чтобы это отразилось в логах, быть не могло. Регистрация была, и это отразилось в логах -- именно так, как я выложил. На практике, а не в теории. Какой был вопрос и какой был ответ -- это не было где-то за кадром, всё оно в логах. Также обратите внимание, что логи мои снабжены временными отметками, так что я точно знаю, когда зарегистрировался бот и какой записи в логах это по времени соответствует.
Так и хочется ответить по-книжному: "У меня все ходы записаны!" (С)

Добавлено спустя 4 минуты 10 секунд:
В дополнение. Если вы найдёте ошибку в моём логгинге, милости прошу, вам респект. Потому что червь сомнения меня гложет, что я в логгиге что-то недоработал...

Добавлено спустя 16 минут 58 секунд:
Ещё раз.
Я вношу в лог переменную $user_response
А спустя несколько строк она же проверятся на валидный ответ.

Код: Выделить всё

if ($user_response == $valid) 				// Did we actually find a valid response?!
Где тут секрет, почему проходит сравнение этой фигни с [url -- с правильным ответом?
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Berk
phpBB 2.0.2
Сообщения: 301
Стаж: 18 лет
Откуда: Украина, Киев
Благодарил (а): 3 раза
Поблагодарили: 2 раза

Re: [FAQ] Предотвращение спама в phpbb3

Сообщение Berk »

да что тут спорить Борис
вы сделали очередной пост из серии "ABQ фигня"
и самое ужасное, что со всей душой в это поверили
поэтому любые доводы вам побоку
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

Re: Prime Anti-bot и русский язык

Сообщение Борис Бердичевский »

Izya писал(а):Борис Бердичевский
Какой бы вещью ни были факты, их надо анализировать, прежде чем делать выводы.
Во-первых, с чего Вы взяли, что зарегался именно тот бот, который ответил на вопрос той строкой, что Вы нам показали.
Во-вторых, фраза, передаваемая формой в качестве ответа на регвопрос, не исполняется каким-либо образом. Она просто сравнивается с подготовленными Вами ответами. Как думаете, сравнение строки

Код: Выделить всё

[url=#file_links[d:\xrumer\all_url_kondrat_shop.txt,1,s]] #file_links[d:\xrumer\ext_kondrat_shop_ru_.txt,1,s]  [/url]
с любым из Ваших ответов даст положительный результат?
В-третьих, Вы уже неоднократно писали, что боты прорывают Вашу защиту. Так может проблему надо искать у Вас, а не в коде хорошего программиста, которого Вы смело называете лохом? Ведь именно к Вам боты могут прорываться по разным причинам (к примеру, стандартные вопросы (кстати, Вы думаете, вопрос про Гурченко сложен для бота?), или, как вариант, кому-то просто по неведомой причине хочется спамить именно Ваш форум, и тут уж ничто надолго не спасет).
Самый важный здесь пункт - "Во-вторых". Пусть он будет "теоретической выкладкой". А Вы возьмите и проверьте эту выкладку на практике. Попробуйте зарегать пользователя, вставив в поле ответа то, что вставил бот.

P.S. Прошу понимать, что я пытаюсь до вас донести. Я не говорю, что Prime AntiBot непробиваем. Он пробивается сразу же, как только один из Ваших вопросов достаточно стандартен, чтобы быть в заготовленном спамерами словаре. Я утверждаю, что считать внесение ботом в поле ответа строк типа

Код: Выделить всё

[url=#file_links[d:\xrumer\all_url_kondrat_shop.txt,1,s]] #file_links[d:\xrumer\ext_kondrat_shop_ru_.txt,1,s]  [/url]
средством взлома защиты - бред. И вот это я утверждаю с полной уверенностью. Эта строка должна преобразовываться хрумером в ссылку и уже в виде ссылки вставлять в форму. По какой-то причине она не преобразовалась и бот ее вставил как есть.
Давайте рассуждать здраво.
Допустим, что бот не прорвался, задав строку с [url. Мне тогда непонятно, как бот прорвался, не оставив других следов.
Возможно, слабинУ нужно искать в другом месте, но не моего кода, а опять-таки кода данного конкретно Антиспам МОДа. Допустим, бот умеет обманывать МОД и после нескольких подобных ответов с [url -- ответов было 2 -- несмотря на несовпадение такого ответа с правильным, бот добивается снятия проверки на "человечность". Только тщательный анализ кода и подробные логи сумеют прояснить картину, как такое произошло. Фишка в том, что -- вполне возможно -- таким же способом прорывается и стандартная капча!
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

Re: Prime Anti-bot и русский язык

Сообщение Борис Бердичевский »

Я добавил логи на всё, включая и успешную проверку на кукки. Посмотрим, если зарегистрируется ли какая-нибудь гадость...
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

Re: Prime Anti-bot и русский язык

Сообщение Борис Бердичевский »

Пока мне ничего не ясно. Было 2 (два) случая регистрации ботов. По времени определил -- посмотрел логи. Такая вот гадость: бот на вопрос ответил неправильно (ответ был 3323442). Скрипт Анти-бот не зарегистрировал НИ правильного, НИ неправильного ответа; такое впечатление, что скрипт "повис". А бот зарегистрировался. :o
Я ввёл одну фишку в скрипт, буду смотреть...
Да, есть у меня одна идея, обязательно проверю! :idea:
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

Re: Prime Anti-bot и русский язык

Сообщение Борис Бердичевский »

А теперь высказываю свою гипотезу, которую я сейчас проверяю.
Время реакции при ручной регистрации и при автоматической (т.е. ботом) разное. Бот умудряется послать сигнал POST ('нажать кнопку' Submit) ещё до того, как скрипт успеет проверить ответ! И при этом функция

Код: Выделить всё

function update_error(&$error)
возвращает результат "нет ошибки"! Поскольку код ошбики

Код: Выделить всё

$this->error = 'PRIME_CAPTCHA_INCORRECT'; 
выставляется только по результатам проверки ответа, а до того он инициализирован как 'false' -- см. строчки

Код: Выделить всё

	class prime_captcha
	{
		var $error = false; 
Также можно объяснить и то, почему после лога с демонстрацией неправильного ответа нет лога, сообщающего "Discarded" (это я такой лог запротоколировал). Потому что форма закрывается, и скрипт прерывает свою работу.
Пока это только гипотеза.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

Re: Prime Anti-bot и русский язык

Сообщение Борис Бердичевский »

Ну что, похоже, совместными усилиями с автором MOD-а нашли глюк. :idea:
http://www.phpbb.com/community/viewtopi ... 5#p9556515
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

Re: Prime Anti-bot и русский язык

Сообщение Борис Бердичевский »

Наконец-то я увидел логи, которые подтверждают мою поправку глюка.
http://www.phpbb.com/community/viewtopi ... 5#p9556695
Т.е. с моей поправкой бот не прошёл! 8-)
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

Re: Prime Anti-bot и русский язык

Сообщение Борис Бердичевский »

Меня тут попросили продублировать поправки глюка. Во-первых, глюк уже поправлен автором МОДа, если вы скачаете последнюю версию МОДа, то будет исправленный вариант. Во-вторых, я для верности добавил свою поправку.
Вот поправка для тех, у кого старый вариант. (Все поправки касаются файла includes/prime_captcha.php )
Find

Код: Выделить всё

                                $this->error = 'PRIME_CAPTCHA_INCORRECT';
                                break;                                            // We didn't find a valid response, so lets move on
                            }
                        }
                        // If we made it here AND no error was assigned, then we did not find a passkey phrase, which shouldn't happen.
 

Replace to

Код: Выделить всё

                                $this->error = 'PRIME_CAPTCHA_INCORRECT';
                                break;                                            // We didn't find a valid response, so lets move on
                            }
                        }
                        // If we made it here AND no error was assigned, then we did not find a passkey phrase, which shouldn't happen.
                        $this->error = ($this->error) ? $this->error : 'PRIME_CAPTCHA_NO_KEY';
 
А это моя поправка, для верности, можно также внести.
Find

Код: Выделить всё

            // If we can find our cookie and it has its correct value, then
            // we've already done a verification and we can just leave.
            if (isset($_COOKIE[$cookie_name]) && $_COOKIE[$cookie_name] == $cookie_value)
            {
                return;
            }  
 
Add after

Код: Выделить всё

$this->error = 'PRIME_CAPTCHA_INCORRECT'; 
 
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!

Вернуться в «Поддержка модов для phpBB 3.0.x»