Пример защиты формы отправки данных от спама

Пример защиты формы отправки данных от спама

3578
Пример защиты формы отправки данных от спама

Сегодня огромное количество спама ежедневно приходит нам на почту, и зачастую жертвами для рассылки становятся наши сайты.

Для защиты форм отправки информации, формы контактов, и др. используется метод фиктивного поля.
Обычно спам шлется в автоматическом режиме. Робот-сканер находит страницу с формой на вашем сайте, заполняет ее своей информацией и отправляет.

Как поставить защиту от таких действий?

Суть метода в том чтобы дать возможность роботу автоматически заполнить ваше проверочное поле, и если оно не пустое - определить спам!

Рабочий пример:

Добавляем фиктивное поле с названием name="fio" и делаем его визуально невидимым

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<form autocomplete="off" class="consultform" id="consultform" method="post">
    <div class="column medium-6 small-12 large-5">
        <label class="color-white">Имя <span>*</span></label>
        <input class="input-group-field" name="cfirstname" id="cfirstname" type="text" placeholder="Имя">
    </div>
     
    <div class="column medium-6 small-12 large-5">
        <label class="color-white">Телефон <span>*</span></label>
        <input class="input-group-field" name="cphone" id="cphone" type="text" placeholder="Телефон">
    </div>                             
     
    <div class="column medium-12 small-12 large-2 text-left">
        <input id="fio" name="fio" type="text" value=""
        <button id="consultformsubmit" type="submit" class="button shop iconized" style="margin: 0 auto; margin-top:25px; display: block;">Отправить</button>
    </div>
</form>


Скрываем поле fio через CSS стили

1
2
3
4
5
<style>
#fio {
    display:none;
}
</style>


В PHP обработчике делаем 2 проверки


1
2
3
4
5
6
7
8
9
private function proceed ()
{
    //Block Bot    
    if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) && empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') return;             
    if ($post['fio']!='') return; //поле должно быть пустое и скрыто через CSS
     
    //Отправка формы
     
}

Компания ABCname занимается разработкой программных модулей и созданием интернет проектов под ключ.

Помогла ли вам статья?
340 раз уже помогла
Комментарии: (0)

КАТЕГОРИИ