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

Антиспам-мод

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

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

Re: Антиспам-мод

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

Уже добавил: в результате тривиального сбоя БД. Ну, скажем, параллельный запрос, блокирующий доступ к ней.

Добавлено спустя 3 минуты 39 секунд:
Mr. Anderson писал(а):а движок решил, что ничего страшного и "баланс все равно сойдется"?
Вот именно! Загляните в код! Массив вопросов пуст -- всё в порядке, даём "зелёный"!
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Mr. Anderson
phpBB Guru
phpBB Guru
Сообщения: 7522
Стаж: 22 года 7 месяцев
Откуда: СССР
Благодарил (а): 6 раз
Поблагодарили: 154 раза

Re: Антиспам-мод

Сообщение Mr. Anderson »

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

Re: Антиспам-мод

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

А что будет занесено в массив вопросов-ответов, если был реджект?
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Mr. Anderson
phpBB Guru
phpBB Guru
Сообщения: 7522
Стаж: 22 года 7 месяцев
Откуда: СССР
Благодарил (а): 6 раз
Поблагодарили: 154 раза

Re: Антиспам-мод

Сообщение Mr. Anderson »

Борис Бердичевский
Вы меня прямо улыбаете. Повредите или заблокируйте таблицу - узнаете :)

По аварийному реджекту соединение с базой тупо закрывется, в ответ отдается соотв. сообщение. И оно, поверьте, не равно пустому месту.

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

Re: Антиспам-мод

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

Ну, вот представим себе ситуацию, что кто-то регистрируется, а при обращении к БД за вопросами произошёл сбой. Что должно произойти дальше, по идее?

Добавлено спустя 18 минут 27 секунд:
Т.е. регистрация должна пройти или нет?
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 8 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Антиспам-мод

Сообщение Sheer »

Борис Бердичевский
Почитайте Тест при регистрации нового пользователя
А в дополнение я прилагаю кусок лога
log.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 9 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

Re: Антиспам-мод

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

Sheer,
отлично!
Покажите мне подобный кусок лога в случае, когда прорвался бот. Кстати, лог не достаточно полный. Я в логе показываю также тексты вопроса и ответа!
Если я увижу в вашем логе, что прорвавшийся бот правильно ответил на вопрос (с распечаткой вопроса и ответа), -- тогда я пас.

Добавлено спустя 4 минуты 36 секунд:
Ну, и в дополнение, мы здесь говорим не о МОДе Тест при регистрации... -- а о стандартном, включённом в поставляемую версию, Текстовом подтверждении.

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

Re: Антиспам-мод

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

Вот фрагмент кода из includes/captcha/plugins/phpbb_captcha_qa_plugin.php (Текстовое подтверждение)

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

	/**
	*  API function - see what has to be done to validate
	*/
	function validate()
	{
		global $config, $db, $user;

		$error = '';
		
		if (!sizeof($this->question_ids))
		{
			return false;
		}
		
		if (!$this->confirm_id)
		{
			$error = $user->lang['CONFIRM_QUESTION_WRONG'];
		}
		else
		{
			if ($this->check_answer())
			{
				// $this->delete_code(); commented out to allow posting.php to repeat the question
				$this->solved = true;
			}
			else
			{
				$error = $user->lang['CONFIRM_QUESTION_WRONG'];
			}
		}

		if (strlen($error))
		{
			// okay, incorrect answer. Let's ask a new question.
			$this->new_attempt();
			$this->solved = false;

			return $error;
		}
		else
		{
			return false;
		}
	}
Возврат функцией false означает, что всё в порядке, валидация успешна. Так что весьма подозрителен возврат этого значение по первому if-у - if (!sizeof($this->question_ids))
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11372
Стаж: 16 лет 9 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Антиспам-мод

Сообщение Пчелкин »

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

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

Anonymous	79.140.23.187	Сегодня, 13:28	Произошла общая ошибка: Общая ошибка 
» SQL ERROR [ mysqli ]

Data too long for column 'topic_title_colour' at row 1 [1406]

SQL

INSERT INTO forum_topics (topic_poster, topic_time, topic_last_view_time, forum_id, icon_id, topic_approved, topic_title, topic_featured, topic_first_poster_name, topic_first_poster_colour, topic_first_poster_avatar, topic_first_poster_avatar_type, topic_first_poster_avatar_width, topic_first_poster_avatar_height, topic_type, topic_time_limit, topic_attachment, topic_password, topic_expire_time, topic_expire_type, expire_forum_id, topic_title_colour, topic_desc) VALUES (1, 1324952888, 1324952888, 145, 0, 1, '1987: "Меченосец"...как вам этот фильм?', 0, 'Mideseicuseli', '', '', 0, 0, 0, 0, 0, 0, '', 0, 0, 0, '"??????????????????"...?????? ?????? ???????? ???????????', '#file_links[C:\\filmonline.txt,1,S]')

BACKTRACE

FILE: includes/db/mysqli.php
LINE: 163
CALL: dbal->sql_error()

FILE: includes/functions_posting.php
LINE: 2113
CALL: dbal_mysqli->sql_query()

FILE: posting.php
LINE: 1399
CALL: submit_post()
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 9 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

Re: Антиспам-мод

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

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

Re: Антиспам-мод

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

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

Re: Антиспам-мод

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

Поразительный случай обнаружен мной только что, а произошло это за последние сутки. Бот KlubNikaTM пытался зарегистрироваться у меня на форуме и на другом форуме, где я занимаюсь техмодераторством. У меня на форуме это не прошло, а на другом форуме он зарегистрировался!
Что за фиговина, подумал я и полез проверять. И оказалось, что при апгрейде того, другого форума я по ошибке не записАл исправленную версию файла includes/captcha/plugins/phpbb_captcha_qa_plugin.php (о правке в котором говорилось выше!)
Вот, нечаянная ошибка позволила выявить истину: вышеприведённая правка действительно устраняет некую "дырку" в ТП, которой и пользуются боты!

Да, вот моё исправление:
includes/captcha/plugins/phpbb_captcha_qa_plugin.php

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

Find:
	function validate()
	{
		global $config, $db, $user;

		$error = '';
		
		if (!sizeof($this->question_ids))
		{
			return false;
		}

Replace to:
	function validate()
	{
		global $config, $db, $user;

		$error = '';
		
		if (!sizeof($this->question_ids))
		{
			$error = $user->lang['CONFIRM_QUESTION_WRONG'];
			return $error;
		}
Также прошу rxu довести этот факт до сведения разработчков.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 21 год 5 месяцев
Благодарил (а): 79 раз
Поблагодарили: 69 раз
Забанен: Бессрочно

Re: Антиспам-мод

Сообщение MAzZY »

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

Re: Антиспам-мод

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

Да уж.
Впервые за всё время логирования выявлен случай, когда бот правильно ответил на вопрос ТП.
Что ж, повод заменить этот вопрос.

Добавлено спустя 14 минут 47 секунд:
Гм, логирование позволит поменять не все вопросы скопом, а только те, на которые у ботов есть ответ.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Shredder
Former team member
Сообщения: 2267
Стаж: 17 лет 10 месяцев
Благодарил (а): 284 раза
Поблагодарили: 584 раза

Re: Антиспам-мод

Сообщение Shredder »

Борис Бердичевский
А я смотрю, у меня после обновление ботьё вдруг резко кучей повалило... Вон оно, в чём оказывается дело. Установил вашу правку, посмотрим как будет.

Вернуться в «Запросы модов для phpBB 3.0.x»