Почему спам-бот обходит серверную валидацию данных формы?
Привет! Через форму обратной связи шлется спам. Причем каким-то образом он обходит проверку данных формы на стороне сервера в php. вручную имитировал такие же запросы - проверку не проходит, все ок. а вот спам-боты как-то проходят.
Вот пример спам письма: заметьте бот умудряется отправлять пустые названия полей!

Вот пример тестового письма:

Обработчик формы:
Помогите понять как такое возможно. И какие варианты решений есть? На вскидку есть несколько мыслей, но время не хочется терять. wordpress. Обычный хостинг regru. есть такая же проблема и похожий спам-бот на timeweb и Битриксе. Спасибо!
Вот пример спам письма: заметьте бот умудряется отправлять пустые названия полей!

Вот пример тестового письма:

Обработчик формы:
<?phprequire_once(dirname(__FILE__).'/class.phpmailer.php');$method = $_SERVER['REQUEST_METHOD'];$message = '';$email = new PHPMailer();$c = true;//$secret = htmlspecialchars(trim($_POST["secret_field"]));//$honeypot = htmlspecialchars(trim($_POST["firstname"]));if($_FILES['upfile']['name'] != ""){for($i=0; $i < count($_FILES['upfile']['name']); $i++){$name_of_uploaded_file = basename($_FILES['upfile']['name'][$i]);$file_to_attach = $_FILES["upfile"]["tmp_name"][$i];$email->AddAttachment($file_to_attach, $name_of_uploaded_file); }}$project_name = trim($_POST["project_name"]);$admin_email = trim($_POST["admin_email"]);$form_subject = trim($_POST["form_subject"]);# spam filter: устанавливаем переменную$no_spam = true;#foreach ( $_POST as $key => $value ) {$key = empty($key) ? 'x' : $key;# spam filter: проверяем поле ввода на спам по признакам в массиве. обновляем переменную если есть спам.if($key == 'Комментарий' or $key == 'x' ){$no_spam = ($value == str_replace(array( 'WhatsApp', 'whatsapp', 'http://', 'https://', 'www.', '.ru', '.com', '[url', '<a ', ' seo ' ),'',$value));}#if ( $value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject" && $key != "consent" ) {$message .= "" . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . "<td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td><td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td></tr>";}}$message = "<table style='width: 100%;'>$message</table>";function adopt($text) {return '=?UTF-8?B?'.base64_encode($text).'?=';}$headers = "MIME-Version: 1.0" . PHP_EOL ."Content-Type: text/html; charset=utf-8" . PHP_EOL .'From: '.adopt($project_name).' <info@'.$_SERVER['HTTP_HOST'].'>' . PHP_EOL .'Reply-To: '.$admin_email.'' . PHP_EOL;$email->CharSet = "utf-8";$email->From = 'info@domain.ru';$email->FromName = $project_name;$email->Subject = $form_subject;$email->isHTML(true);$email->Body = $message;$email->AddAddress( $admin_email );$email->AddAddress( 'alexdio85@domain.ru' );# spam filter: отсылаем заявку на почту если спама нетif($no_spam) $email->Send();#
Помогите понять как такое возможно. И какие варианты решений есть? На вскидку есть несколько мыслей, но время не хочется терять. wordpress. Обычный хостинг regru. есть такая же проблема и похожий спам-бот на timeweb и Битриксе. Спасибо!

Смотрите также:
Цена: 1000 руб.

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