Защита от авто-заполнения форм

Начало / Безопасность / Безопасность

Защита от авто-заполнения форм

Код подтверждения

Самый распространенный способ.
Вы знакомы с требованием ввести текст с картинки.

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

Испробовав разные скрипты, порекомендую вам разработанный . скачать

Я сам сделал свой скрипт такого рода, но он слишком уж нетрадиционный, потому не предлагаю. А вообще, рекомендую делать самим, чем кустарнее, тем надежнее защита от роботов.

Ловушка

Создаем скрытое поле, не hidden, а напр. скрытое средствами CSS. Назовем поле напр. email.

Обычный посетитель не видит это поле и естественно не заполняет его. Спам-робот заполнит это поле. Форма должна обрабатываться только, если это поле будет пустым.

Можно сделать по-другому. Если спрятанное поле не заполнено, письмо идет вам, а если введен какой-то email, то на него письмо и уйдет. Но скорее всего email будет не настоящий.

Бесспорный плюс этого метода, он совершенно не виден посетителю, так и должно быть.

Идея взята с www.nedbatchelder.com/text/stopbots.html

Создаем поле напр.

<input type=text name=email style="display: none">
А страница обработки будет выглядеть примерно
<?
if($email=='') { $a="my@mail.ru";}
else { $a=$email;}

mail("$a", "письмо с сайта", " от $name
email-отправителя: $mail
тема: $reason
текст письма: $message",
"From: <$mail>\nContent-type: text/plain; charset=utf-8"); 
?>

id сессии

Если используются сессии, то в элемент пишем id сессии напр.
<input type=hidden name=id_ses value=<? echo id_session(); ?>>
Затем проверяем, если
$_POST['id_ses']== id_session()
то выполняем действие, если нет не выполняем.

Размер экрана

Если вы знакомы со скриптом, который загружает различные страницы сайта в зависимости от разрешения экрана.

Немного подправьте этот скрипт, если у экрана нет размеров, значит форма не обрабатывается.