Как защитить от спама формы landing page без капчи?

Есть обычный лендинг-пейдж без cms (на html / css +обработчик формы на php). На него начал идти спам. Как избавится от него? Ставил скрытое поле для спам ботов, но оно не помогает. Какие еще есть способы защиты без капчи?
  • Вопрос задан
  • 1008 просмотров
Решения вопроса 1
xmoonlight
@xmoonlight Куратор тега PHP
https://sitecoder.blogspot.com
Проще простого:
1. Изначально - img-кнопка "Заполнить форму".
2. Активация формы - по клику (динамическая, на JS).

Т.е. не давайте простым парсерам возможности определения, что страница содержит форму.

Ещё вариант:
Чекбокс спрятать за overflow:hidden и там написать: "I confirm" или "Подтверждаю" или "Даю согласие" и подобное...
С поставленной галкой, после отправки, пишем точно так же, как и обычно: "Спасибо! Ваша форма отправлена.".
На сервере - с этой галкой, сразу в бан.

И 99.9% - сразу попадутся..
Ответ написан
Пригласить эксперта
Ответы на вопрос 9
@Programmir
Есть же невидимая капча от гугл
Ответ написан
Wohlstand
@Wohlstand
Инженер-программист С++
Как сказал FanatPHP , можно сделать поля-ловушки. У меня немного другой метод, но тоже довольно эффективный:
- создать НЕСКОЛЬКО полей, таких как "phone", "homepage", "skype" и др (на что фантазии хватит). Они должны быть полноценными полями, не `type=hidden`!
- сделать их на уровне CSS скрытыми (сделать класс, который их будет скрывать, либо скрывать их по каждому ID-тэгу). По коду эти поля должны выглядеть максимально естественно и не отличаться от остальных. (чтобы человек их не видел, но чтобы их видел бот и думал, что это естественные поля на форме).
- под капотом, следить за тем, чтобы эти поля были пустыми.
- если это был бот, он обязательно заполнит эти поля. И если они заполнены, то сделать вид, что всё было успешно, НО, при этом под капотом ничего не делать. Пусть бот тратит время на пустые надежды!
Ответ написан
@Dasslier
FrontEnd Developer
А каким образом использовали скрытое поле? Я поставил скрытое поле и скрытый чек-бокс. Если что-то одно заполнено или отмечено - шлю на 3 буквы. Вроде не спамит
Ответ написан
@ar2rsoft
PHP-developer
Можно сделать скрытое поле, значение в которое аяксом подгружается по событию нажатия клавиш в поле ввода текста (один раз). Конечно, на 100% не спасает, но большой процент простых ботов отсечь можно
Ответ написан
Можно, как говорили добавить поле-ловушку и еще реальные поля, которые будут отправляться не называй стандартными именами, типа name, phone. Называй, например field_3, field_432. Для себя в обработчике можно пометку сделать какое поле чему соответствует. От серьезной атаки не защитит конечно, но от дурачков, коих большинство, в самый раз
Ответ написан
платные антиспам решения
Ответ написан
@FanatPHP
Сделай простую ловушку.
К примеру, поле для имени назови email, а для емейла - name.
Ну и проверяй наличие собаки в емейле и отсутствие в имени .
Ответ написан
sashabeep
@sashabeep
Создатель гипертекстовых документов
if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || (strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest')){
	die("Thank you for sending");
}
Ответ написан
touristmoscow
@touristmoscow
Full-stack
Подгрузить аяксом форму с помощью jquery .load() (если подключена эта библиотека)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы