Защита от спама: Антибот 100500

Лучшая на данный момент защита от ботов

Хаки, скрипты, BB-коды и другие вещи, не оформленные в виде полноценных модов, но способствующие улучшению функциональности движка.
Аватара пользователя
c61
Разработчик модов
Сообщения: 249
Зарегистрирован: 24.08.13 16:46

c61 » 03.01.16 23:51

Я лично до сих пор сомневаюсь, основания имеются. Есть иные версии происхождения бага ? Нет ? Лучше оставьте язвительность и изложите свои версии, если есть.

Xisp
Сообщения: 196
Зарегистрирован: 05.04.14 18:00

Xisp » 04.01.16 00:16

c61 писал(а):сть иные версии происхождения бага ?

Никакого бага нет, всё сказано тут:
Подробнее: в большинстве случаев ошибка отправки формы связана с истечением времени сессии или жизни формы и не имеет никакого отношения к срабатыванию антибота. Задавайте корректные параметры времени сессии и формы в администраторском разделе (рекомендую устанавливать одинаковые значения, например, 14400 секунд).

Я видел ошибку только при длительной задержке отправки формы.

Аватара пользователя
c61
Разработчик модов
Сообщения: 249
Зарегистрирован: 24.08.13 16:46

c61 » 04.01.16 00:24

Завтра кину логи, если надо. Порой возникает ситуация, когда время сессии, формы и прочее нормальные, а маркер формы - нет, при этом он не был изменён каким-либо скриптом как на стороне сервера, так и на стороне клиента. На разных конференциях, разных версиях php и phpbb, разных конфигурациях серверов. Общее одно - есть nginx.

Xisp
Сообщения: 196
Зарегистрирован: 05.04.14 18:00

Xisp » 04.01.16 00:34

c61 писал(а):Общее одно - есть nginx.

Он никак не должен влиять на обработку конкатенации строк в PHP.
nginx может повлиять на время обработки скрипта, на заголовки, посылаемые PHP или Apache.

Аватара пользователя
c61
Разработчик модов
Сообщения: 249
Зарегистрирован: 24.08.13 16:46

c61 » 04.01.16 12:13

Тем не менее, ошибка не проявляется под голым апачем, под lighttpd и прочим... Влиять не должен, но каким-то образом влияет :lol:

Аватара пользователя
c61
Разработчик модов
Сообщения: 249
Зарегистрирован: 24.08.13 16:46

c61 » 19.01.16 17:35

Похоже, я нашёл, в чём дело. Проблема в особенностях новомодных браузеров. Они запоминают hidden поля input form, причём обновление страницы по f5 не помогает, и это основная причина. Грешит прежде всего firefox. Поэтому очередной патч (от предыдущего вреда не будет, да и пользы, похоже, тоже никакой :lol: ), сброс формы, теперь в overall_footer, перед </body>, требуется jquery:

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

<script type="text/javascript">
// <![CDATA[
if ( "{SCRIPT_NAME}" == "viewtopic" ) {
	$("input[name=form_token]").each(function() {
		var text = $(this.form.message).val();
		$(this.form).trigger("reset");
		$(this.form.message).val(text);
	});
}
// ]]>
</script>

См. http://c61.no-ip.org/forum/viewtopic.php?f=20&t=106 , выложил новую версию для 3.1.

Аватара пользователя
c61
Разработчик модов
Сообщения: 249
Зарегистрирован: 24.08.13 16:46

c61 » 22.01.16 09:20

Сделал у себя отдельную тему соотв. патча phpBB patch: ложная ошибка отправки формы, где добавил хуки 3.0.x для случаев наличия/отсутствия JQuery (чтобы не трогать overall_footer в шаблоне).

Shredder
Администратор
Сообщения: 1064
Зарегистрирован: 22.08.13 09:05

Shredder » 22.01.16 10:59

А если сделать автоматическое определение наличия или отсутствия JS, чтобы не трогать хук - такое возможно?

Кстати, у себя пока исправлений не делал, хочу поймать ошибку и посмотреть, в чём будет дело в моём случае. Пока ошибок не было с тех пор, как поставил отслеживающий скрипт.
Мои моды и расширения для phpBB
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.

Аватара пользователя
c61
Разработчик модов
Сообщения: 249
Зарегистрирован: 24.08.13 16:46

c61 » 22.01.16 11:20

Shredder писал(а):А если сделать автоматическое определение наличия или отсутствия JS, чтобы не трогать хук - такое возможно?
Определить отсутствие JS можно только "от обратного" - выпонив скрипт JS...

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

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

if (window.jQuery) {
  // ...
}
но после некоторых размышлений я решил не засорять страницы лишними скриптами, поэтому два хука для двух случаев ;)

Shredder
Администратор
Сообщения: 1064
Зарегистрирован: 22.08.13 09:05

Shredder » 22.01.16 11:25

Тьфу, конечно наличие Jquery, а не JS... Опечатался. :)
Мои моды и расширения для phpBB
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.

Ответить