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

Всем привет!

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

С третьей формы ( Заявка на тимбилдинговую программу "Вместе мы сила" ) приходит спам - писем по 50 в день ( возможно чуть больше ).

На форме стоит маска номера : если не ввести номер, или ввести меньше нужного количества цифр - форма не отправится. Но,
спам отправляется невзирая на маску.

Письма спама, имеют такой вид :
Имя: 59ea099d6c60a
Телефон: 
Почта: tanyabcook@sc.rr.com

Имена, разумеется постоянно разные ( произвольный набор цифр и букв ) и, с абсолютно разных почтовых ящиков.
Поле "телефон" - пустое ( хотя форма не должна отправлять пустое поле ).

Как можно избавится от спама ? Уже думал менять домен, но это сильно радикальный метод.

Благодарю за помощь!
  • Вопрос задан
  • 27099 просмотров
Решения вопроса 1
Zakonoposlushniy
@Zakonoposlushniy Автор вопроса
Решил проблему таким способом :
В форму добавил поле
<input id="check" name="check" type="hidden" value="" />

Потом в кнопку, через которую идёт отправка, добавил
onclick="document.getElementById('check').value = 'secretcode';"

Вышло что-то вроде этого
<button onclick="document.getElementById('check').value = 'secretcode';" type="submit">Отправить</button>

И в php-обработчике, добавил это
if ($_POST['check'] != 'secretcode') exit('Spam decected');


Возможно кому-то поможет.
Удачи!
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
villiwalla
@villiwalla
HTML-верстка
Первое, проверка корректности данных должна быть на клиенте и на севере, а не только на клиенте как у вас.

Второе, спам может пройти проверку корректности на клиенте и сервере, а поскольку спам машина, ей можно подписать инпут с display: none; и именем типовым типа last_name. Проверяем на клиенте и сервере поле, если заполнено то не отправляем, можно ещё код 200 вернуть для бота, а если и это проходит то тогда капчу Гугла вешайте невидимку или галку на форму.
Ответ написан
Комментировать
BuriK666
@BuriK666
Компьютерный псих
Проверяйте корректность формы на стороне сервера.
Ответ написан
Комментировать
mxms
@mxms
IT voodoo
Вот так примерно.
https://kostikov.co/prostoj-metod-zashity-veb-form...
И никакой каптчи.
Ответ написан
boypush
@boypush
Geek
Интегрировать капчу, например от гугл.
Ответ написан
Ваш ответ на вопрос

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

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