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

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


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

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

<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
Ссылка на сообщение
Поделиться на других сайтах

Мне кажтся что боты не заполняют форм а сразу шлют все в обработчик. И как то не понял зачем each?

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

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

У меня было такое ощущение, но КАК они могут послать сразу в 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" меняем на любую свою :)

Ссылка на сообщение
Поделиться на других сайтах
  • 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 недели спустя...

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

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

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

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

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...