Форма электронной почты PHP Отправка случайного текста

StackOverflow https://stackoverflow.com/questions/4566367

  •  14-10-2019
  •  | 
  •  

Вопрос

Я сделал веб-страницу для клиента, которая включала серию текстовых покл, с просьбой о конкретной информации, такой как имя человека, адрес электронной почты, компания и т. Д. Наряду с кнопкой, которая отправит информацию моему клиенту по электронной почте. Всякий раз, когда я проверял кнопку, она, казалось, работала отлично, я загружал страницу и думал, что закончил. Но на днях мой клиент получил это письмо с сайта:

Имя: rfhopzdgmx rfhopzdgmx
Электронная почта: envlxw@lnlnsm.com
Компания: Zudxatafodvqrdh

Почтовый адрес:
Aassxklqphisocncei
gxsimmprbyzq
vglvzrazndpoav, chsmuibe pokzascubxpri

Домашний телефон: cijbifjmfjiatqald
Рабочий телефон: jflzbovru
Сотовый телефон: xlfjttfgittiifqfy
Факс: Uejmovzodwpkkxew

Комментарии: spvsce hgetwoguderu,*
url = http: //atyktjlxcznl.com/] atyktjlxcznl [/url],
link = http: //nudvfcehwpyg.com/] nudvfcehwpyg [/link], http://lvvwkbzbhnzp.com/

ПРИМЕЧАНИЕ. Строка * Line содержала код ссылки HTML, я просто не знаю, как заставить этот сайт показать его.

Вот код PHP на сайте для кнопки электронной почты.

<?php
//This Sends A Formatted Text Email Using The Text Boxes
if ($_POST['submit']){
    //This Gets The Form Data
    $fname = $_POST['fName'];
    $lname = $_POST['lName'];
    $email = $_POST['email'];
    $company = $_POST['co'];
    $address1 = $_POST['address1'];
    $address2 = $_POST['address2'];
    $city = $_POST['city'];
    $state = $_POST['state'];
    $zip = $_POST['zip'];
    $homep = $_POST['homeP'];
    $workp = $_POST['workP'];
    $cellp = $_POST['cellP'];
    $fax = $_POST['fax'];
    $comments = $_POST['txaOutputField'];

    //echo "<script language = 'javascript'>alert('YAY');</script>";

    if ($fname && $lname && $email && $comments){ //Check If Required Fields Are Filled
        //This Sets The SMTP Configuration In php.ini
        ini_set("SMTP", "smtp.2ndsourcewire.com");

        //This Replaces Any Blank Fields With 'None's
        if ($company == ""){
            $company = "None";
        }
        if ($address1 == ""){
            $address1 = "None";
        }
        if ($city == ""){
            $city = "None";
        }
        if ($state == ""){
            $state = "None";
        }
        if ($zip == ""){
            $zip = "None";
        }
        if ($homep == ""){
            $homep = "None";
        }
        if ($workp == ""){
            $workp = "None";
        }
        if ($cellp == ""){
            $cellp = "None";
        }
        if ($fax == ""){
            $fax = "None";
        }

        //This Creates The Variables Necessary For The Email
        $to = "CLIENT EMAIL WHICH I'M CENSORING";
        $subject = "Email from 2ndSourceWire.com";
        $from = "From: noreply@2ndsourcewire.com";
        $secondEmail = "MY EMAIL WHICH I'M ALSO CENSORING";

        if ($address2 == ""){
            $body = "Name: $fname $lname\n".
                    "Email: $email\n".
                    "Company: $company\n\n".
                    "Mailing Address:\n".
                    "$address1\n".
                    "$city, $state $zip\n\n".
                    "Home Phone: $homep\n".
                    "Work Phone: $workp\n".
                    "Cell Phone: $cellp\n".
                    "Fax: $fax\n\n".
                    "Comments:\n".
                    "$comments";
        }
        else {
            $body = "Name: $fname $lname\n".
                    "Email: $email\n".
                    "Company: $company\n\n".
                    "Mailing Address:\n".
                    "$address1\n".
                    "$address2\n".
                    "$city, $state $zip\n\n".
                    "Home Phone: $homep\n".
                    "Work Phone: $workp\n".
                    "Cell Phone: $cellp\n".
                    "Fax: $fax\n\n".
                    "Comments:\n".
                    "$comments";
        }

        //This Sends The Email
        mail($to, $subject, $body, $from);
        mail($secondEmail, $subject, $body, $from);

        echo "<script language = 'javascript'>alert('The email was sent successfully.');</script>";
    }
    else {
        //The Required Fields Are Not Filled
        echo "<script language = 'javascript'>alert('Please fill your first name, last name, email address, and your comment or question.');</script>";
    }
}

?>

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

Я понятия не имею, что вызвало это или как это исправить, я рисую здесь. У кого -нибудь есть идеи?

Это было полезно?

Решение

Спаммер/бот ввел данные DUFF на вашу страницу, и вы покорно отправили их в свою заявку.

Как вы думаете, почему это загадка?

Другие советы

Добавьте капчу, чтобы остановить это. Если вы не напишите свой собственный, вы можете использовать Recaptcha

Даже простой вопрос, как "ты человеческий y/n?" или "2+2?" Остановит бота, также используя несколько JS, чтобы установить скрытое значение для отправки и проверьте это на сервере. Было бы неплохо иметь некоторую проверку по электронной почте и телефону $.

Вместо того, чтобы заставлять людей пытаться читать капчас, мне нравится иметь четыре текстовых поля подряд и попросить пользователя проверить два случайных (например, «Пожалуйста, проверьте первые и третьи поля») и убедитесь, что это единственные два проверенных в проверка.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top