Перейти к публикации

Еще одна защита от регистрации ботов


Рекомендованные сообщения

В шаблоне вместо:

<input type="email" name="email">
пишем так:
 

				   <input type="email" id="qwerty" style="display:none">

					<input type="email" id="qwerty1" name="emailx" onblur="qwqwqw(); return false;">

					<input type="email" id="qwerty2" style="display:none" name="email">

					<script type="text/javascript">					

					function qwqwqw() {

						$.each($("#qwerty1"),

							 function()

							 {

								$('#qwerty').val($(this).val());

								$('#qwerty').attr('name','email');

								$('#qwerty2').attr('name','');

							}

						);

					}

					</script>

[/code]

ID qwerty - то, что в итоге передается скрипту.

ID qwerty1 - сюда вводится E-Mail пользователем.

ID qwerty2 - ловушка для ботов

Проверяем, тестим...

IDшнки и имя функции рекомендую заменить на свои...

Изменено пользователем IgorA100
  • Поддерживаю 1
Ссылка на сообщение
Поделиться на других сайтах

а сразу шлют все в обработчик

У меня было такое ощущение, но КАК они могут послать сразу в registration.php, если там


if( ! defined( 'DATALIFEENGINE' ) ) {

die( "Hacking attempt!" );

}

не понял зачем each

Ошметки от экспериментов :). Конечно перебор не нужен...

За два дня эксперимента на 3х сайтах ни одного бота не зарегалось пока.

Изменено пользователем IgorA100
Ссылка на сообщение
Поделиться на других сайтах
У меня было такое ощущение, но КАК они могут послать сразу в registration.php
Потому, что запрос идёт не напрямую к registration.php, а сразу POST на ?do=register Изменено пользователем Александр Медведев
Ссылка на сообщение
Поделиться на других сайтах

Расширим и углубим (с) ХАК :)

Прописываем такой JS:


  <script type="text/javascript">				   

				    function qwqwqw() {

							    $('#qwerty').val($("#qwerty1").val());

							    $('#qwerty').attr('name','email');

							    $('#qwerty2').val('antibot');

							    $('#qwerty2').attr('name','antibot');

				    }

				    </script>

В файле register.php добавляем после

require_once ENGINE_DIR . '/classes/parse.class.php';

такой код:

if (isset( $_REQUEST['email'] ) && ($_POST['antibot'] != 'antibot') ) {

die( "Bot must die!" );

}

Переменную "antibot" меняем на любую свою :)

  • Поддерживаю 1
Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
  • 1 месяц спустя...
  • 4 месяца спустя...

у меня не принимает регистрируемый е-мейл (абсолюно реальный) если в данной строке стоит type="email":

<input type="email" id="qwerty2" style="display:none" name="email">
Е-мейл принимается только в случае изменения типа на text, т.е.:
<input type="text" id="qwerty2" style="display:none" name="email">[/code]

Это критично?

Ссылка на сообщение
Поделиться на других сайтах
  • 4 недели спустя...

А в чем именно проявляется сия критичность?

Что от этого зависит?

И почему не работает так, как приведено выше?

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...