2022年5月16日
2022/5/16(月) 00:00 ~ 09:00にコアサーバー(coreserver.jp) 最新・高速サーバーへの移転メンテナンスが行われました。
それ以降、CGIで動作している掲示板(YY-BOARD)が従来のバージョンが動作しなくなりました。
掲示板自体がある意味では時代遅れになってしまっていますが、それでもスパム投稿はあります。
YY-BOARDの新バージョンでは画像を見て数字を入力させるなど、スパム対策は強化されているのですが、すり抜けるスパム投稿はあります。
YY-BOARDが新バージョンに変わった事に伴い、YY-BOARD spam 対策改造も利用できなくなりました。残念です。
CGIの知識も中途半端にしか持ち合わせていないので、自分で触れる部分はごくわずかです。
とりあえず、init.cgiの設定で、
スパム対策に画像認証を使用する場合の設定1にしておきます。
$cf{use_captcha} = 1;
# 投稿があるとメール通知する (sendmail必須)の設定を# 1 : 通知するにしておきます。
$cf{mailing} = 1;
# URLの自動リンク (0=no 1=yes)をnoにします。
$cf{autolink} = 0;
# 投稿制限(セキュリティ対策)を1 : 同一IPアドレスからの投稿間隔を制限するにします。
$cf{regCtl} = 1;
# 制限投稿間隔(秒数)を60秒にします
$cf{wait} = 60;
# 日本語チェック(投稿時日本語が含まれていなければ拒否する)を1=Yesにします。
$cf{jp_wd} = 1;
# URL個数チェック 投稿コメント中に含まれるURL個数の最大値を2にしました
$cf{urlnum} = 2;
2022年7月24日
掲示板(YY-BOARD)を新バージョンに更新してから、メール通知でホスト名は記載されるのですがIPアドレスが記載されなくなりました。
ホスト名からIPアドレス を取得する方法はあるのですが、他のサイトに行って変換したりしなければいけないので面倒です。
以前のように最初からIPアドレスを記載された方が便利です。
そもそも、なんでIPアドレスの取得が必要かというと、迷惑投稿をはじく場合に必要なんです。
メールにIPアドレスの通知を入れるように改造しました。
regist.cgiを改造します。
メール送信の部分で
#———————————————————–
# メール送信
#———————————————————–
sub mail_to {
my ($date,$host) = @_;
の部分を
#———————————————————–
# メール送信
#———————————————————–
sub mail_to {
my ($date,$host,$addr) = @_;
に変更します。
投稿日:$date
ホスト:$host
の下に1行追加して
投稿日:$date
ホスト:$host
IPアドレス:$addr
に変更します。
ついでに、ログにもIPアドレスを記録して、管理画面にもIPアドレスを表示するように改造しました。
regist.cgiを改造します。
unshift(@data,”$no<><>$date<>$in{name}<>$in{email}<>$in{sub}<>$in{comment}<>$in{url}<>$host<>$crypt<>$in{color}<>$icon[$in{icon}]<>\n”);
unshift(@data,”$no<>$addr<>$time<>\n”);
の全てに <>$addr を加えて
unshift(@data,”$no<><>$date<>$in{name}<>$in{email}<>$in{sub}<>$in{comment}<>$in{url}<>$host<>$addr<>$crypt<>$in{color}<>$icon[$in{icon}]<>\n”);
unshift(@data,”$no<>$addr<>$time<>\n”);
に変更します。
push(@data,”$no<>$in{reno}<>$date<>$in{name}<>$in{email}<>$in{sub}<>$in{comment}<>$in{url}<>$host<>$crypt<>$in{color}<>$icon[$in{icon}]<>\n”);
の全てに <>$addr を加えて
push(@data,”$no<>$in{reno}<>$date<>$in{name}<>$in{email}<>$in{sub}<>$in{comment}<>$in{url}<>$host<>$addr<>$crypt<>$in{color}<>$icon[$in{icon}]<>\n”);
に変更します。
my ($no,$reno,$date,$name,$eml,$sub,$com,$url,$host,$pw,$col,$ico) = split(/<>/);
に $addr を加えて
my ($no,$reno,$date,$name,$eml,$sub,$com,$url,$host,$addr,$pw,$col,$ico) = split(/<>/);
に変更します。
$_ = “$no<>$reno<>$date<>$in{name}<>$in{email}<>$in{sub}<>$in{comment}<>$in{url}<>$host<>$pw<>$in{color}<>$icon[$in{icon}]<>\n”;
の全てに <>$addr を加えて
$_ = “$no<>$reno<>$date<>$in{name}<>$in{email}<>$in{sub}<>$in{comment}<>$in{url}<>$host<>$addr<>$pw<>$in{color}<>$icon[$in{icon}]<>\n”;
に変更します。
admin.cgi を改造します。
my ($no,$reno,$date,$name,$eml,$sub,$com,$url,$host,$pw,$col,$ico) = split(/<>/);
に $addr を加えて
my ($no,$reno,$date,$name,$eml,$sub,$com,$url,$host,$addr,$pw,$col,$ico) = split(/<>/);
に変更します。
$_ = “$no<>$reno<>$date<>$in{name}<>$in{email}<>$in{sub}<>$in{comment}<>$in{url}<>$host<>$pw<>$in{color}<>$icon[$in{icon}]<>\n”;
の全てに <>$addr を加えて
$_ = “$no<>$reno<>$date<>$in{name}<>$in{email}<>$in{sub}<>$in{comment}<>$in{url}<>$host<>$addr<>$pw<>$in{color}<>$icon[$in{icon}]<>\n”;
に変更します。
print qq|<b class=”sub”>$sub</b> 名前:<b>$name</b> 日時:$date [$host]\n|;
に [$addr] を加えて
print qq|<b class=”sub”>$sub</b> 名前:<b>$name</b> 日時:$date [$host][$addr]\n|;
に変更します。
2022年8月2日
頻度は少ないけど、凄く文字化けしているスパム投稿があります。
その場合には、メールでの通知もありません。
掲示板のロゴファイルの最終更新日を表示してあるのですが、それを見て初めて気づくという感じです。
正式な手順を踏んでの投稿では無くて、直接にログファイルに書き込んでいる感じです。
ひょっとしたら、ShiftJISで書き込んでいるのかもしれません。
不思議です
2022年8月15日
スパム投稿防止のために .htaccess で特定IPアドレスのアクセスを制限しているのですが、何故か正常に動作していませんでした。
通常、 .htaccess に deny from 123.456.789.000 に記述すれば、IPアドレス123.456.789.000のアクセスを禁止できるのです。
いろいろ調べたら、 .htaccess の最後の行に空白の行を入れないといけないのを、怠っていたのが原因だったようです。
これで、とりあえず禁止したIPアドレスからのアクセスは無くなりました。
IPアドレス逆引きで調べると、スパム投稿のほとんどは、海外からのアクセスのようです。
最終手段として考えているのは、.htaccessで日本からのアクセス以外の禁止です。
全てのアクセスを禁止した上で、日本のサーバーだけを例外としてアクセスを許可するという設定のようです。
2022年8月28日
相変わらず、スパム投稿はあります。
通知メールは来たり来なかったりです。
アドレスは必ず2個入っているので、
# URL個数チェック 投稿コメント中に含まれるURL個数の最大値の設定を2にしてあるのは効いているようです。
URL個数の最大値の設定を2から1に変更しました。
$cf{urlnum} = 1;
ログを調べると
2630<><>2022/08/28(Sun) 03:06<>ehrwxyyx<>zhdheapz1980@gmail.com<>êªÜ禁odn<>{êªÜ禁<br> https://****.org/content/probalan-best-price-generic http://****.ru/info/voltaren-buying-generic-w7ze3<><>185.253.162.12<>185.253.162.12<>Sjv9GT0vVtQ6s<>0<>bear.gif<>
2629<><>2022/08/28(Sun) 01:32<>sqsekp<>fmbsoag1975@gmail.com<>êªÜ禁pfleh<>{êªÜ禁<br> http://www.****.ru/node/28762 https://****.net/vasotec-how-purchase<><>unn-143-244-54-140.datapacket.com<>143.244.54.140<>t9CvrLXw/lFnc<>0<>bear.gif<>
2628<><>2022/08/27(Sat) 22:32<>twtsmgo<>tfjwmjje1977@hotmail.com<>êªÜ禁slizt<>{êªÜ禁<br> http://****.hu/alesse_generic_comparable_to https://****.net/discussion/avapro-safe-online-pharmacy<><>154.6.130.141<>154.6.130.141<>mmtAjSv9QTZ/E<>0<>bear.gif<>
621<><>2022/08/28(Sun) 10:07<>rdmdaqpt<>fforwhk1979@gmail.com<>êªÜ禁iwbub<>{êªÜ禁<br> http://****.ru/forum/feldene-how-order-0 https://****.com/lesson/602895/avana-purchase-north-dakota<><>140.228.24.120<>1GawP52sC5R9E<>0<>bear.gif<>
620<><>2022/08/28(Sun) 02:02<>wrwnaplg<>desgpnk1975@hotmail.com<>êªÜ禁igzs<>{êªÜ禁<br> http://www.****.ru/node/28762 http://****.ru/info/voltaren-buying-generic-w7ze3<><>94.156.14.23<>gWFNhDfHkmRW6<>0<>bear.gif<>
必ず禁が入っています。
êªÜ禁 と 禁<br> http を禁止ワードに登録しました。
# 禁止ワード
# → コンマで区切って複数指定(例)$cf{no_word} = ‘アダルト,出会い’;
$cf{no_wd} = ‘êªÜ禁,禁
http’;
2022年9月3日
1週間スパム投稿が止まっています。
2022年9月9日
久しぶりにスパム投稿がありました。
.htaccess で deny from 123.456.789.000 に記述済のIPアドレスでした。
.htaccessをUTF-8で保存しなおしてアップロードしておきました。
念のため、MovableTypeでの禁止IPアドレスにも登録しておきました。
2022年9月26日
今のところ、完全にスパム投稿が止まっています。