問い合わせ用ページへの
ロシアから攻撃

当方が設置しているこの問い合わせ用フォームメールページに対して、IPアドレスがロシアのサンクトペテルブルクの接続元からのしつこい攻撃にあい、仕方がないので、同じIPアドレスからは、フォームメールが送信できないPHPコードを付加せざる得なくなってしまった。

@経緯

1月20日ごろから、下のような、明らかにPHP等のプログラムを使用した自動書き込みのフォームメールが、1日に10通以上届くようになった。

mark357177@hotmail.com
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit

名前:Mark
会社名・団体名:zIPgtJZhFc
住所:UQVdBNFQWNxdXWKSI
メールアドレス:mark357177@hotmail.com
問合せ内容:aDph1c http://www.FyLitCl.com

メールアドレスは、いつも同じだが、その他は、恐らく、簡単な乱数を使っている。
(PHPのrand関数は、完全なものではない)
攻撃者の意図等は、全く不明で単なるいたずらと思い、しばらくいちいち受信したフォームメールを手作業で消していたが、一向に止む気配がない。

A攻撃者のIPアドレスを特定して記録するための書き込みファイルを1月末に設置し、その上で、特定したIPアドレスからは、メール送信ができないようにPHPコードに下記の簡単な条件を付加。

else{
if($ip=="188.143.232.16"){

echo "<span style='color:red;font-size:25px;'>fucking guys! simple PHP can delete your attaking!</span><br>";
}

Bところが、敵さんは、IPアドレスの下3ケタを変えてきやがる。この時点で、接続元の所在地を調べると
ロシアのサンクトペテルブルク
上のページのコメントから当方が意図的に狙われて攻撃されたのでなく、2年以上前からあるスパムに使用されるIPアドレスの旨判明。

B当初はよくあるような画像で表示した文字を入力しないと送信できない手法を考えたが、たかが、問い合わせ用ページに設置するのはいくらなんでもおかしいので、同じIPアドレスからは、2回目の送信ができないようにPHPコードを付加。
(ただし、最終的には、HP制作申込ページについてのみ、設置せざるを得なくなった。PHPコード全文を公表していますので、参考にして下さい)


パソコンであれば、当然、固定IPアドレスで全く問題ないが、モバイル端末だと固定ではなく、しかも、共通のIPアドレスなので、問題ある。しかし、サイト制作等の問い合わせをスマホからする人は、ほとんどないはずなのでOKとした。パソコン持たずにサイト開設する者なんていないだろう。

これで、完全に、ロシアからの攻撃の防御は、完全に完了。OKでした
ただし、敵さんがIPアドレスを変えた場合には1回だけ送信・受信され、記録されます
参考までに、PHPコードを載せておきます。こんなばかばかしいほど簡単なPHPで防御できます。
相手が素人で良かったの一言!

ただし、モバイル端末からの入力・送信ですと、初めて送信する人でも、場合によっては、送信できなくなりますのでPHPコードをコピー使用される場合には、ご注意ください。
(モバイルの場合、どのIPアドレスが割り当てされるかは不定です。)

$namae=$_POST["name"];
$company=$_POST["company"];
$phone=$_POST["phone"];
$fax=$_POST["fax"];
$adress1=$_POST["adress1"];
$adress2=$_POST["adress2"];
$mail=$_POST["mail"];
$contents=$_POST["contents"];

$nichiji="書き込みと送信日時". strftime ("%Y年%m月%d日") . strftime ("%H時%M分%S秒") .
"<br>";
$ip="IPアドレス=" . $_SERVER['REMOTE_ADDR'] . "<br>";
$ip2=$_SERVER['REMOTE_ADDR'];
$server= "接続サーバー名=";
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$gyo="<br><br>";
$list=$nichiji.$ip.$server.$hostname.$gyo;

mb_language('Japanese');
mb_internal_encoding('SJIS');
mb_http_output('SJIS');
$html_source = file_get_contents("ip2.html");
$kensaku = strstr($html_source,$ip2);


if (empty($namae))
{echo "<span style='color:red;font-size:25px;'>名前を記入して下さい</span><br>";}

else{
if (empty($adress2))
{echo "<span style='color:red;font-size:25px;'>住所を記載して下さい</span><br>";}

else{
if (empty($mail))
{echo "<span style='color:red;font-size:25px;'>メールアドレスを記載して下さい</span><br>";}
else{
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$mail))
{echo "<span style='color:red;font-size:25px;'>正しい形式でメールアドレスを記載して下さい(例kazuoueda1982@gmail.com)</span><br>";}
else{
if (empty($contents))
{echo "<span style='color:red;font-size:25px;'>内容を記載して下さい</span><br>";}

else{
if($ip=="188.143.232.16"){

echo "<span style='color:red;font-size:25px;'>fucking guys! simple PHP can delete your attaking!</span><br>";
}

else{
if($kensaku){echo "<span style='font-size:20px;font-weight:bold;'><br><br>このフォームメールページは、<a href='http://www.hpcreating.com/inquire/ip2.html' target='_blank'>送信者のIPアドレスを保存</a>し同一のIPアドレスからの送信の場合には、拒絶する機能をつけております。<br>
フォームメールではなく、<A href='mailto:contact@hpcreating.com?Subject=%96%e2%82%a2%8d%87%82%ed%82%b9'>
通常のEmail</a>(←クリックでメール画面が開きます。)にてご連絡下さい。</span><br><br>

<br>2016年1月30日以降<a href='http://whatismyipaddress.com/ip/188.143.232.16' target='_blank'>IPアドレス所在地がロシアのサンクトペテルブルク</a>である複数のIPアドレスから、激しい攻撃を受けており、防御のためやむなく設置しましたので了解ください。<br>
";}


else{
mb_language("Ja") ;
mb_internal_encoding("Shift_Jis") ;
$mailto="contact@hpcreating.com";

$subject="問合せメール";
$content="名前:$namae\n会社名・団体名:$company\n住所:$adress2\nメールアドレス:$mail\n問合せ内容:$contents";
$headers =$mail;
mb_send_mail($mailto,$subject,$content, $headers);


echo "<span style='color:#ff0000;'>お問い合わせありがとうございます<br>
3営業日以内にメールにて連絡申し上げます</span><br>";

$file = fopen("ip2.html","a");
fwrite($file,$list);
fclose($file);

}}}}}}}




2017年
10月
1234567
891011121314
15161718192021
22232425262728
293031