php антиспам на форму скрытое поле

Как предотвратить спам через форму обратной связи?

Есть сайт.
На нём 17 форм обратной связи. Все формы имеют одинаковый обработчик, за исключением небольших отличий.

Письма спама, имеют такой вид :

Благодарю за помощь!

php антиспам на форму скрытое поле. Смотреть фото php антиспам на форму скрытое поле. Смотреть картинку php антиспам на форму скрытое поле. Картинка про php антиспам на форму скрытое поле. Фото php антиспам на форму скрытое поле

php антиспам на форму скрытое поле. Смотреть фото php антиспам на форму скрытое поле. Смотреть картинку php антиспам на форму скрытое поле. Картинка про php антиспам на форму скрытое поле. Фото php антиспам на форму скрытое поле

php антиспам на форму скрытое поле. Смотреть фото php антиспам на форму скрытое поле. Смотреть картинку php антиспам на форму скрытое поле. Картинка про php антиспам на форму скрытое поле. Фото php антиспам на форму скрытое поле

Решил проблему таким способом :
В форму добавил поле

Потом в кнопку, через которую идёт отправка, добавил

Вышло что-то вроде этого

И в php-обработчике, добавил это

Возможно кому-то поможет.
Удачи!

php антиспам на форму скрытое поле. Смотреть фото php антиспам на форму скрытое поле. Смотреть картинку php антиспам на форму скрытое поле. Картинка про php антиспам на форму скрытое поле. Фото php антиспам на форму скрытое поле

php антиспам на форму скрытое поле. Смотреть фото php антиспам на форму скрытое поле. Смотреть картинку php антиспам на форму скрытое поле. Картинка про php антиспам на форму скрытое поле. Фото php антиспам на форму скрытое поле

Alexey_R88, У вас одна форма или несколько?
Если несколько, то обратите внимание, что проверка идёт по ID, и с одной формы может всё прекрасно отправляться, а с другой выскакивать «Spam decected».

Вот доработанный вариант с более удобной проверкой по классу :

php антиспам на форму скрытое поле. Смотреть фото php антиспам на форму скрытое поле. Смотреть картинку php антиспам на форму скрытое поле. Картинка про php антиспам на форму скрытое поле. Фото php антиспам на форму скрытое поле

php антиспам на форму скрытое поле. Смотреть фото php антиспам на форму скрытое поле. Смотреть картинку php антиспам на форму скрытое поле. Картинка про php антиспам на форму скрытое поле. Фото php антиспам на форму скрытое поле

Zakonoposlushniy,
помогите, никак не могу понять, куда вставлять это:

var buttons = document.getElementsByClassName(«Здесь пишем класс кнопки»);
for (var i =0;i buttons[i].onclick = handler;
>
>)();

я так понял в файл с формой, но в какое место и в каких тэгах?
попробовал вставить в тэгах скрипт текст/яваскрипт внутри формы в конце и пробовал также сразу после нее, но не заработало.

и подскажите логику работы этого всего.

я правильно понял, что
1. по-умолчанию заполняю скрытое поле чек каким-то любым словом на свое усмотрение, или оставляю пустым.
2. дальше яваскрипт отслеживает нажати кнопки отправки формы и в этот момент вписывает в значение value скрытого поля кодовое слово по моему усмотрению
3. обработчик проверяет поменял ли бот слово ф скрытом поле на кодовое и если он слал через метод пост без браузера, то скорее всего не поменял и соответственно детектируем бот.
4. если же оно заполнено кодовым словом, то видимо человек постил через браузер, так как сработал наш яваскрипт по замене на кодовое слово по нажатии кнопки

Источник

Защита формы обратной связи от спама на PHP и JavaScript

php антиспам на форму скрытое поле. Смотреть фото php антиспам на форму скрытое поле. Смотреть картинку php антиспам на форму скрытое поле. Картинка про php антиспам на форму скрытое поле. Фото php антиспам на форму скрытое поле

Всем привет. Если вы читаете эту статью, то вероятнее всего столкнулись с проблемой, которая выражается в виде спама через форму обратной связи на сайте. К сожалению спама меньше не становится и нужно от этого как-то защищаться. Способы существуют, их несколько, но мы рассмотрим один, на мой взгляд весьма эффективный. Сразу скажу, что не будем привязываться к какому-то конкретному движку, сделаем все своими руками. Прежде, чем писать защиту формы от спама, следует отметить, что в большинстве случаев спам приходит автоматический, это так называемые спам-боты, которые рассылают сообщения на тысячи сайтов. Сканируется сайт на наличие формы обратной связи и если она есть, поля заполняются и тут же идет отправка.

Защита формы от спама. Теория

Что бы будем делать?

Как правило боты не делают нажатие на кнопку отправки и это легко проверить, установив в Яндекс Метрике соответствующие цели. Поэтому такой способ должен защитить сайт от спама если не совсем, то ограничить его поступление до минимума. То есть будут приходить сообщения только если живой человек отправит форму самостоятельно, то есть нажмет на кнопку. Итак, приступим. Добавляем в форму скрытое поле:

Защита контактной формы от спама. Практика

В JavaScript пишем следующее:

let code = document.querySelector(‘#code’); // Получаем скрытый input document.querySelector(‘.btn’).onclick = function()< // Клик по кнопке отправки code.value = 'NOSPAM'; // Подставляем значение в value инпута >;

После клика скрытое поле будет выглядеть примерно так:

Теперь сделаем проверку на PHP.

На этом защиту от спама можно было бы завершить, но как быть с движками типа WordPress? Для CMS существует огромное количество плагинов по защите от различного рода взломов, атак и спама, но при желании можно внедрить и этот способ, но это тема для отдельной статьи или целого видео-урока. Возможно в ближайшее время я выпущу материал на эту тему. А какие способы защиты от спама знаете вы?

Читайте также:

Интересно, есть-ли у Вас на сайте пример создания ФОС для установки на HTML страницу?

Пока нет. А что это?

Форма обратной связи для заинтересованного посетителя с возможностью обратного звонка. В сети есть примеры платные и бесплатные, рабочие и не рабочие — устаревшие.Часто на одностраничниках, и на моей странице тоже стоят такие ФОС. Хотелость бы иметь современную ФОС без использования БД.

Особенно интересно создать скрипт комментариев с возможностью редакции на таком же одностраничнике. В сети есть аналог такого комментария, но всего ОДИН!

Привлекать сторонние сервисы со своими скриптами, это их реклама и потеря веса. Хотя, я пользуюсь и этим на своих одностраничниках.

Всё дело в том, что ряд моих страниц уже несколько лет стоят в топ 10 по вч запросам и это ощутимо в вопросах бизнеса. В Google, клиенты, не смотря на раздел МОЙ БИЗНЕС, не проявляют желания писать отзывы. Да, и не умеют. А тут же на странице — пожалуйста. Но нет такой возможности.

Отзывы можно реализовать по принципу гостевой книги.

Интересное решение. Учитывая, что на моей странице 80 000 знаков как бы защитится от текстовых ботов на всякий случай. У Вас была публикация по ограничению по буквам записей на JS.

Видимо я и запомнил вашу эту публикацию, что она одна в инете. Спасибо за ваши практики.

От ботов ограничение на JS не спасет. Попробуйте такой вариант.

Спасибо. Буду интепретировать.

о) написал огромный коммент со своим вариантом защиты от ботов, и ничего не опубликовалось. Ладно!

Там ссылка была. Автоматом в спам ушло.

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

1. Список 1. Массив со списком HTML сущностей, которых легче всего можно спрятать в токене из рандомных символов.
2. Список 2. Массив со списком декодированных HTML сущностей из списка 1.
3. При открытии страницы формируется рандомный токен из символов »&;0123456789&;abcdefghijklmnopqrstuvwxyz&;ABCDEFGHIJKLMNOPQRSTUVWXYZ&;()#%», я использовал сложность 50, т.е. строка на 50 символов.
4. Выбираем случайный элемент из списка 1, и заменяем им случайный символ из токена, предварительно сохранив в сессию НОМЕР_СТРОКИ в токене, в которую мы поместили HTML сущность и НОМЕР_ЭЛЕМЕНТА в массиве списка 1.
5. Помещаем полученный токен в форму на странице.
6. После того, как мы получили токен от формы, получаем соответствующий символ из токена по НОМЕРУ_СТРОКИ и сравниваем его с элементом из списка 2 по НОМЕРУ_ЭЛЕМЕНТА
7. Если они совпадают, значит, форма отправлена человеком.
8. Если нет, значит, форма отправлена роботом.
Принцип защиты основан на том, что браузер всегда декодирует HTML сущности, и одна и та же HTML сущность будет иметь разный вид, в зависимости от того, получена она от браузера или от бота, не использующего браузер.
Пример:
& iexcl; = Бот отправит этот код как есть, состоящий из 7 символов.
¡ = человек отправит этот же код в таком виде.

Токен в 50 символов используется, чтобы не было очевидно, что защита основана на принципе отображения браузером HTML сущностей.
Реализовывал эту защиту на разных сайтах, которые жаловались на спам, и хотели защиту без капчи, включая свой собственный сайт. Ни разу боты не прошли эту защиту.

Источник

Защищаем веб-формы от спама без CAPTCHA — 2: Ботобор

Три года назад на Хабре была опубликована статья «Form Spam Bot Blocker: Защищаем Web-формы без CAPTCHA!», рассказывающая о принципиально отличном от CAPTCHA решении для PHP по защите форм от спам-ботов. Это решение основано на идеях, изложенных в своих статьях Филом Хааком (Phil Haack) — Honeypot Captcha и Недом Батчелдером (Ned Batchelder) — Stopping spambots with hashes and honeypots. К сожалению, предложенный в статье класс, написан для PHP4 и не развивается с 2007-го года. Хочу предложить вашему вниманию его аналог на PHP5.

Ботобор

Ботобор — библиотека, написанная на PHP 5.0, предназначенная для защиты от заполнения веб-форм роботами. Используемые ей методы, незаметны для посетителей-людей.

Для выявления роботов Ботобор использует следующие проверки:

По умолчанию используются все проверки, но у разработчика есть возможность отключать любые из них.

Примеры

Простой пример

Фрагмент кода, обрабатывающего данные формы:

require ‘botobor.php’ ;

if ( Botobor_Keeper :: isHuman ( ) )
<
// Форма отправлена человеком, можно обрабатывать её.
>

Пример настройки формы

В остальном всё также как и в первом примере.

Что у ней внутре?

Что делает Ботбор с кодом формы

, содержащий input[type=hidden] с мета-данными формы. Эти мета-данные хранят подписанную информацию о времени создания формы, установленных опциях и т. д. В этот же скрытый блок Ботобор может вставлять поля-приманки.

Поля-приманки

Поля-приманки предназначены для отлова роботов-пауков, которые находят формы самостоятельно. Такие роботы, как правило, ищут в форме знакомые поля (например, name) и заполняют их. Ботобор может добавить в форму скрытые от человека (при помощи CSS) поля с такими именами. Человек оставит эти поля пустыми (т. к. просто не увидит), а робот заполнит и тем самым выдаст себя.

По умолчанию в коде формы ищутся поля с любым из следующих имён: «name», «mail», «email» (список настраивается). У каждого найденного поля имя меняется на сгенерированную случайным образом комбинацию символов и создаётся скрытое средствами CSS поле с оригинальным именем.

Обратное преобразование имён будет сделано во время вызова метода Botobor_Keeper::handleRequest() или Botobor_Keeper::isHuman().

Источник

Защита от спама без капчи

php антиспам на форму скрытое поле. Смотреть фото php антиспам на форму скрытое поле. Смотреть картинку php антиспам на форму скрытое поле. Картинка про php антиспам на форму скрытое поле. Фото php антиспам на форму скрытое поле

Защита от спам-рассылок на вашем сайте — очень важная составляющая, без которой не обходится ни один проект. Одним из эффективных способов защиты являются различные капчи, например, reCAPTCHA от Google. Но как обойтись без использования надоедливых проверочных слов или картинок?

Блокировка при AJAX-запросах

Если на вашем сайте форма обрабатывается при помощи AJAX запроса, то первое, что вы можете сделать — это запретить обращаться к PHP скрипту напрямую, без AJAX. Сделать это очень просто, добавив условие в ваш обработчик формы обратной связи:

Таким образом, мы смогли ограничить прямое обращение к файлу обработчику формы и сделали возможным только через AJAX запрос. Но что делать, если боты на вашем сайте отправляют спам через ваши формы? Для этого можно добавить дополнительные проверки.

Защита от спама с помощью ложного поля

Вот и все! Мы создали скрытое поле, которое будет видно для ботов и не видно для посетителей вашего сайта. Чем это поможет? Бот не различает видимость полей формы и заполняет поля по их именам, в нашем случае это имя или адрес электронной почты. Далее в PHP обработчике вашей формы добавляем условие на пустое поле:

Дополнительное секретное поле для защиты от спама

И еще один дополнительный метод защиты, который позволит вас ограничить отправку spam сообщений через ваши формы обратной связи. Для этого добавим 2 функции в вашу CMS систему. Если вы разрабатываете сайт на WordPress, то добавляем функции в файл functions.php вашей темы, если работаете в 1С-Битрикс, то в файл /bitrix/php_interface/init.php:

Далее добавляем скрытое поле в вашу форму обратной связи:

Таким образом мы добавляем в проверочное поле код, который состоит из случайного набора букв, точки и того же набора букв, обработанного алгоритмом md5, который шифрует в одностороннем порядке строку. Далее в php обработчике формы декодируем полученные данные при помощи функции keengoDecodeCheckWord() и проверяем верно ли передана строка:

Вот и все. Боритесь со спамом эффективно и с умом!

Еще интересное в блоге

Как сделать ЧПУ для сайта

Создание ZIP архива

Будем рады работать именно с вами

Политика конфиденциальности персональных данных

Keengo · Web Design & Development
© 2010–2021 Все права защищены

Источник

Защита от спама PHP формы отправки данных

Как защитить форму от отправки таких данных. 100% защиты не может быть, так как никто никогда не запрещает заполнить вашу форму вручную. Но все же мы можем защитить ее от роботов (программ), которые могут отправлять сотни сообщений в секунду.

Создание скрытого поля с шифром при помощи PHP

Простейший способ – создание скрытого поля с генерацией в нем набора спец символов.

Прежде всего, мы добавляем в форму скрытое поле.

Мы шифруем время запуска формы и имя ivan. Получается, что каждую секунду данная переменная будет изменена, а алгоритм шифрования известен только вам. Вы можете использовать любой другой метод шифрования или использовать набор любых символов вместо ivan. Для того, чтобы обойти такую защиту в вашей форме потребуется разгадать метод шифрования. Поверьте – это возможно, но на это потребуется некоторое время. И, если это произошло, и защита PHP формы отправки данных на почту не работает, то вы всегда можете поменять шифр.

Код формы изменится:

Проверка передаваемого шифра на PHP

Со стороны PHP мы должны принять скрытую переменную и проверить ее тем же образом, но при этом нам обязательно нужно создать новую переменную и зафиксировать в ней время загрузки формы, иначе наша простейшая защита PHP формы от спама будет работать против нас и не даст пользователю отправить сообщение. Для этого создаем переменную, также шифруя ее:

Затем прикрепляем переменную при помощи GET массива.

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

На следующем рисунке отображен исходный код через несколько секунд.

php антиспам на форму скрытое поле. Смотреть фото php антиспам на форму скрытое поле. Смотреть картинку php антиспам на форму скрытое поле. Картинка про php антиспам на форму скрытое поле. Фото php антиспам на форму скрытое поле

Вы всегда можете использовать Google ReCaptcha для защиты от спама. Это более надежная защита.

А по поводу защиты PHP формы от спама, описанной в данной статье, я предлагаю в комментариях описать возможные способы ее обхода для того, чтобы мы могли ее усложнить и сделать более надежной, при этом не перегружая пользователя лишними и раздражающими действиями. Пока главная проблема здесь в том, что все ключи видны пользователю. Можно хранить закрытые ключи в базе данных или банально в файле и это усложнит задачу взлома для любителей СПАМА.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *