質問
私は、人の名前、電子メールアドレス、会社などの特定の情報を要求する一連のテキストボックスを含むクライアントのためにWebページを作成しました。ボタンをテストするたびに、それは完全に動作するように見えたので、ページをアップロードして、完了したと思いました。しかし、先日、私のクライアントはサイトからこのメールを受け取りました。
名前:rfhopzdgmx rfhopzdgmx
電子メール:envlxw@lnlnsm.com
会社:Zudxatafodvqrdh
送り先:
aassxklqphisocncei
gxsimmprbyzqq
vglvzrazndpoav、chsmuibe pokzascubxpri
自宅の電話:Cijbifjmfjiatqald
ワーク電話:Jflzbovru
携帯電話:xlfjttfgittiifqfy
ファックス:uejmovzodwpkkxew
コメント:spvsce hgetwoguderu、*
url = http://atyktjlxcznl.com/] atyktjlxcznl [/url]、
link = http://nudvfcehwpyg.com/] nudvfcehwpyg [/link]、 http://lvvwkbzbhnzp.com/
注: *行には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>";
}
}
?>
私はこれがどのように起こったかについて少しumb然としています、クライアントはこれについていくつかの電子メールについて言及したので、それがランダムな不具合だとは思いません。また、電子メールアドレスは電子メールアドレスのようにフォーマットされていたため、誰かまたは一部のプログラムが各テキストボックスの横にあるラベルを解釈していました。また、入力された最初の名前と姓は同じ単語であることに気付きました。異なるテキストボックスにあったとしても、スパムプログラムを考えていますが、噴出するのではなく、何かを宣伝してお金を稼ごうとはしません。ランダムなテキストを出しますか?また、コメントセクションは私にはまったく意味がありません。リンクはどこにも行きませんでした。それらはすべて完全にフォーマットされています。どちらもプログラムではありません。
何がこれを引き起こしたのか、それを修正する方法がわかりません。ここで空白を描いています。誰かがアイデアを持っていますか?
解決
スパマー/ボットがページにDuffデータを入力し、アプリケーションで忠実にそれを送信しました。
なぜこれが謎だと思いますか?
他のヒント
キャプチャを追加して、それが起こるのを止めます。あなたが自分で書くものを何を書くことができないなら、あなたは使用することができます Recaptcha
「あなたは人間ですか?」のような簡単な質問でさえさえも。または「2+2?」また、ボットを停止し、一部のJSを使用して、送信時に隠された値を設定し、サーバー上でそのことを確認します。 $電子メールと$電話でのいくつかの検証があります。
人々にキャプチャを読み取らせようとする代わりに、私は4つのテキストボックスを連続して持っていて、ユーザーに2つのランダムなボックスをチェックするように依頼します(例:「1つ目と3番目のボックスをチェックしてください」)。検証。