Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
FCSM
2 / 2 / 2
Регистрация: 03.04.2016
Сообщений: 71
1

Идёт спам с формы обратной связи. Как исправить?

20.10.2017, 17:47. Просмотров 2541. Ответов 14
Метки нет (Все метки)

Всем привет!

Есть такой сайтик : http://oprteam.ru/

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

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

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

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

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

Благодарю за помощь!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2017, 17:47
Ответы с готовыми решениями:

Формы обратной связи?
Здравствуйте, помогите пожалуйста создать две формы обратной связи! Чтобы...

UTF-8 для формы обратной связи
Здравствуйте! Я работаю над формой обратной связи с отправкой на электронную...

Изменение сообщения при отправке формы обратной связи
Есть страница <?PHP if (!empty($_POST)){ $myemail =...

Очистка полей формы обратной связи после отправки
Как сделать так, чтобы после отправки поля формы очищались? или же реализовать...

Сброс Каптчи после отправки формы обратной связи
Как сбросить капчу, не могу разобраться. Нашел выражение grecaptcha.reset();...

14
quwy
Native x86
3338 / 2184 / 649
Регистрация: 13.02.2013
Сообщений: 7,239
20.10.2017, 18:02 2
Цитата Сообщение от FCSM Посмотреть сообщение
приходит спам - писем по 50 в день
Ха! Радуйтесь, что не 50000.

Цитата Сообщение от FCSM Посмотреть сообщение
хотя форма не должна отправлять пустое поле
Нужно логирвать тело POST-запроса, и смотреть, что эти гады шлют. Очевидно в коде обработки формы есть ошибка.

Цитата Сообщение от FCSM Посмотреть сообщение
Уже думал менять домен, но это сильно радикальный метод.
Ничего не даст, эти козлы гадят в любую незащищенную форму. Новый домен они найдут через месяц.
0
Jewbacabra
Эксперт PHP
3749 / 3094 / 1362
Регистрация: 24.04.2014
Сообщений: 9,396
20.10.2017, 18:14 3
FCSM, проверка на номер стоит только на клиенте? Если да, то спамеры его не используют, отправляют запрос напрямую. Следует использовать рекапчу для защиты
0
FCSM
2 / 2 / 2
Регистрация: 03.04.2016
Сообщений: 71
20.10.2017, 18:21  [ТС] 4
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Следует использовать рекапчу для защиты
Да нет, рекапча это некрасиво и геморно для человека отправляющего заявку.
0
Jewbacabra
Эксперт PHP
3749 / 3094 / 1362
Регистрация: 24.04.2014
Сообщений: 9,396
20.10.2017, 18:40 5
FCSM, хотя бы посмотрел в доке. Особенно про последнюю версию, которая от пользователя не требует никаких действий в определенных случаях
0
Phantom-84
270 / 225 / 62
Регистрация: 15.09.2017
Сообщений: 1,083
20.10.2017, 19:01 6
Цитата Сообщение от FCSM Посмотреть сообщение
Письма спама, имеют такой вид
Это сейчас массовый вал. Они отличаются отсутствием "тела сообщения". Вот у вас поле "телефон". Если форма требует непустого поля, а оно пустое, то наверняка отправка идет минуя форму, значит можно смело отфильтровывать по этому полю.

Цитата Сообщение от FCSM Посмотреть сообщение
Как можно избавится от спама ? Уже думал менять домен, но это сильно радикальный метод.
Тем более что он не поможет. У меня два способа на 100 процентов справляются с этой напастью:
- сложным образом устроенная каптча;
- дополнительное подтверждение после отправки (тоже методом POST).

Кстати, в оч. редких случаях наблюдаются попытки обхода даже сложных методов защиты, например приблизительно в одном-двух из 10000 случаев наблюдается переход на страницу подтверждения, имеющую сложный адрес с элементом случайности, происходящий после редиректа. Хотя возможно это живой интелект того же вредителя.

Добавлено через 4 минуты
Уточню: это не на одном домене, а примерно на пятистах.
0
Nike555
6 / 6 / 4
Регистрация: 12.03.2015
Сообщений: 104
21.10.2017, 12:12 7
Автор скорее всего использует защиту только для клиентской части.
Попробуйте в PHP сделать небольшую защиту типа:
PHP
1
2
3
4
5
if (!empty($_POST['Tel']) || $_POST['Tel'] != '' || strlen($_POST['Tel']) != 17)
{
    // отправляется письмо
    mail(...);
}
Добавлено через 17 минут
PHP
1
2
3
4
5
if (!empty($_POST['Tel']) || $_POST['Tel'] != '' || strlen($_POST['Tel']) == 17)
{
    // отправляется письмо
    mail(...);
}
(допустил ошибку)
0
FCSM
2 / 2 / 2
Регистрация: 03.04.2016
Сообщений: 71
21.10.2017, 13:26  [ТС] 8
Цитата Сообщение от Nike555 Посмотреть сообщение
Автор скорее всего использует защиту только для клиентской части.
Попробуйте в PHP сделать небольшую защиту типа:
PHP
1
2
3
4
5
if (!empty($_POST['Tel']) || $_POST['Tel'] != '' || strlen($_POST['Tel']) == 17)
{
    // отправляется письмо
    mail(...);
}
Да, защита стоит только на клиенте. Благодарю за решение. Сейчас поставил, гляну как пойдёт
0
DontFollow
0 / 1 / 0
Регистрация: 27.03.2017
Сообщений: 12
24.10.2017, 22:52 9
Удаляешь атрибут required и отправляешь. Все просто. Делай проверку в своем обработчике, внутри сайта.
0
Миниатюры
Идёт спам с формы обратной связи. Как исправить?  
nikolay1982
123 / 123 / 59
Регистрация: 22.01.2014
Сообщений: 447
25.10.2017, 10:56 10
А если на обработчике формы на JavaScript реализовать получение UTC времени, шифрование его каким-нибудь способом, передача этих данных в параметре запроса, расшифровка на стороне сервера и проверка если реальное время не отличается, скажем на 3 часа? Если передано неверное время то отмена отправки письма.
0
FCSM
2 / 2 / 2
Регистрация: 03.04.2016
Сообщений: 71
25.10.2017, 11:20  [ТС] 11
Цитата Сообщение от nikolay1982 Посмотреть сообщение
А если на обработчике формы на JavaScript реализовать получение UTC времени,
Да нет, нужно проще.
0
FCSM
2 / 2 / 2
Регистрация: 03.04.2016
Сообщений: 71
07.11.2017, 17:09  [ТС] 12
Решил проблему таким способом :
В форму добавил поле

HTML5
1
<input id="check" name="check" type="hidden" value="" />
Потом в кнопку, через которую идёт отправка, добавил
Javascript
1
onclick="document.getElementById('check').value = 'secretcode';"
Вышло что-то вроде этого
HTML5
1
<button onclick="document.getElementById('check').value = 'secretcode';" type="submit">Отправить</button>
И в php-обработчике, добавил это
PHP
1
if ($_POST['check'] != 'secretcode') exit('Spam decected');
Возможно кому-то поможет.
Удачи!
0
Dfny-te
1 / 1 / 0
Регистрация: 22.10.2017
Сообщений: 44
07.11.2017, 20:09 13
Цитата Сообщение от FCSM Посмотреть сообщение
Потом в кнопку, через которую идёт отправка, добавил
Серьезно? Я счас накидаю курлом тебе столько сообщений, что зависнет твоя почта
Думаешь трудно послать пост check равное secretcode? Тем более, что это можно прочитать в исходном коде страницы в браузере.
Это ты нарвался на хакеров-любителей
0
FCSM
2 / 2 / 2
Регистрация: 03.04.2016
Сообщений: 71
08.11.2017, 06:45  [ТС] 14
Цитата Сообщение от Dfny-te Посмотреть сообщение
Это ты нарвался на хакеров-любителей
Просто это единственный вариант, который пока работает, из всех, которые я попробовал.
0
Phantom-84
270 / 225 / 62
Регистрация: 15.09.2017
Сообщений: 1,083
08.11.2017, 08:29 15
Dfny-te, спамерам даже до хакеров-любителей далеко. Поиск и бомбежка форм в большинстве своем происходит в автоматическом режиме. Секретный код может периодически меняться, только не делайте это единовременно. Нужно использовать как минимум двухэтапное устаревание. На JS на 100% полагаться нельзя, например я иногда отключаю JS в экспериментальных целях и забываю включить повторно, пока не замечу, что отключен. Простые методы могут быть достаточно эффективны, например неплохо себя показывает использование пустых скрытых стилистически полей с именами вроде email, но не стоит ограничиваться только этими методами. А если кто-то знающий решил проспамить конкретно ваш сайт, то он это сделает. Методы защиты от автомата тут не работают, только сложным образом устроенная каптча.
0
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru