Как настроить дополнительные условия валидации полей Contact Form 7 на Wordpress?
Здравствуйте. Я использую на своем сайте Contact Form 7 для Wordpress. Столкнулся с проблемой.
Через контакт форму льется море спама вполне определенного содержания:
E-mail: minaranco2041@mail.ru
Имя: Евгения (или Олег, Николай)
Тема: Перезвоните
Сообщение: Перезвоните пожалуйста по телефону ..., Евгения (Олег, Николай)
А так как у меня настроен автоматический ответ, то хостер считает, что с моего аккаунта рассылается спам, и поэтому блокирует почтовый сервер. Следовательно, не доходят заявки от клиентов.
В логе apache наблюдается такой паттерн:
Dec 10 08:11:47 ... "GET / HTTP/1.0" 200 ...
Dec 10 08:11:48 ... "GET / HTTP/1.0" 200 ...
Dec 10 08:11:48 ... "GET /contacts/ HTTP/1.0" 200 ...
Dec 10 08:11:49 ... "POST /contacts/ HTTP/1.0" 200 ...
Установил honeypot для wpcf7, не помогает.
IP спамеров периодически меняется, поэтому через htaccess бессмысленно запрещать доступ.
Я подумал, что если настроить дополнительный фильтр в самой wpcf7, то это может сработать. Я себе представляю решение с помощью дополнительного условия валидации:
Если название письма "Перезвоните", то выдавать предупреждение "Измените тему письма".
С php я знаком очень поверхностно. Подскажите, пожалуйста, как это сделать? Или может есть какие-то другие решения на подобный случай?
Решил пофантазировать с параметрами вставки скрытого поля honeypot, назвал его "телефон". Видимо, бот вставляет туда номер, и поэтому скрипт блокируется. Не знаю, сработало именно это, или причина какая-то другая, но пока полет нормальный.
Можно чиркануть небольшой плагин с js, отлавливающим содержимое поля, но что-то мне подсказывает что скрипты не работают через UI, а нанимать "китайцев" мы еще не научились. Поэтому следующим решением может быть функция, фильтрующая wp_mail.
Также, можно поставить проверку типа скрытого поля: Если оно заполнено и пошло в запросе то прерывать выполнение с 200ым.
Еще можно скрывать кнопку отправки до
условий и после отправки
У меня схожая ситуация, ставить чекбоксы типо снимите галочку или поставте не помогает.
А вот насчет скрытого поля пока ничего не могу сказать, тестируем это
Спасибо.
По поводу фильтрации wp_mail - я что-то типа такого и представлял себе. Единственное, надо понять, на каком этапе он фильтрует почту. Потому что главная проблема не столько в самом спаме, который можно отсеять уже на почте, а в cf7, которая успевает отправить автоматическое письмо в ответ. Соответственно, при активном спаме автоответы рассылаются как из пулемета, поэтому хостер и возмущается.
Я думал о дополнительном условии валидации CF7. Это самое первое звено, и в коде плагина уже прописаны все поля, а также вывод уведомлений о неправильном заполнении.
Только не понимаю, как написать само условие на php.
Александр Соболев, Это практически наверняка cf7.
На странице, которую запрашивает бот (видно из последовательности обращений к серверу с данного ip), это единственный способ что-то отправить.
И, собственно, обнаружилась проблема из-за подозрительной активности в отправке писем. То есть реакция автоответчика на входящий поток спама.
Спасибо. Вроде это должно сгодиться.
Только у меня более старая версия CF7 (v3 работает с cf7 5.1). Боюсь обновлять, чтобы не слетели стили. Но если не решу проблему другим способом, то придется.