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

Сегодня огромное количество спама ежедневно приходит нам на почту, и зачастую жертвами для рассылки становятся наши сайты.
Для защиты форм отправки информации, формы контактов, и др. используется метод фиктивного поля.
Обычно спам шлется в автоматическом режиме. Робот-сканер находит страницу с формой на вашем сайте, заполняет ее своей информацией и отправляет.
Как поставить защиту от таких действий?
Суть метода в том чтобы дать возможность роботу автоматически заполнить ваше проверочное поле, и если оно не пустое - определить спам!
Рабочий пример:
Добавляем фиктивное поле с названием 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
раз уже помогла