サイト運営の話」カテゴリーアーカイブ

YY-BOARD新バージョンでのスパム対策

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日

今のところ、完全にスパム投稿が止まっています。

撮影条件をまとめてみました

いろんな状況での撮影条件って、おのおの違います。
その時々で撮影条件を確認して撮影しますが、すぐに忘れてしまいます。
その都度調べるのが面倒なので、まとめておきます。
難しい撮影は基本的には三脚が必要です。
1/100秒より短ければ一脚でリモコン使用でも大丈夫です。
2秒タイマーを利用するのも有効的です。

 

ホタル
70mmのレンズでISO1600絞りF5.6、シャッタースピード60sec
100mmのレンズでISO1600絞りF8、シャッタースピード60sec
ピントはマニュアルです。

ホタル拡大
感度をISO1600、絞りを開放(F値最小)にして、マクロレンズ(SIGMA 焦点距離50mm F値最小2.8) で撮るのが良さそうです。
ピントはマニュアルです。
ホタルも動くので、シャッタースピードは出来るだけ短く(1/60秒より短く)すれば良いです。



NDフィルター
シャッタースピード1秒 ISO100 F値20 絞り優先Av

ライトアップ
絞り優先オート(A、Avモード)、ISO400、F11程度

キリコ祭り
ピントはマニュアルが必須です。
SIGMA AF 20mm F1.8 EX DG RF ASPHのレンズで、ISO1600,焦点距離20mm,絞りF1.8からF2.2シャッタースピード1/30から1/90秒
PENTAX FA50mmF1.4のレンズで、ISO1600,焦点距離50mm,絞りF1.4からF2.2,シャッタースピード1/90秒

三脚無しでは
PENTAX FA50mmF1.4のレンズで、ISO6400、絞りF1.4、シャッタースピード1/100秒、ホワイトバランス太陽光モード
PENTAX FA50mmF1.4のレンズで、ISO6400、絞りF2.2、シャッタースピード1/100秒、ホワイトバランス太陽光モード

室内の動く対象物を撮る

三脚無しでは
PENTAX FA50mmF1.4のレンズで、ISO3200、絞りF1.4、シャッタースピード1/100秒よりできるだけ短く

花火
シャッタースピードはバルブ、感度はISO100、絞りF10、ホワイトバランスは太陽光、ピントはマニュアルです。
背景が写り込まないようにデジカメを位置づけして、バルブでシャッターを開けっぱなしにして、2から3秒ごとに、レンズを遮蔽板で塞ぎながら少しずつ左右に回転して、画面いっぱいに花火が写り込むように撮影しました。レンズを遮蔽板で塞がないでレンズを回転すると花火の光の移動の軌跡が残るのでダメです。

夕焼け
夕焼けの撮影条件はISO100から400、絞りはF8からF12でホワイトバランスは日影、露出はマイナス0.7、絞り優先(Av)で良いという事で、それに近い条件をいろいろ試してみました。
陽に向かっての撮影の場合、可変NDフィルターを使う方が良いです。

掲示板の最終更新日表示(getstamp)が動作しない

2022年5月24日

2022/5/16(月) 00:00 ~ 09:00にコアサーバー(coreserver.jp) 最新・高速サーバーへの移転メンテナンスが行われました。
MovableType6が動作しなくなりました。
それ以降、CGIで動作している掲示板(YY-BOARD)もアクセスカウンター(lime)も人気投票(votecom)も掲示板の最終更新日表示(getstamp)も動作しなくなりました。

コアサーバー 最新・高速サーバーへの移転メンテナンスの影響だと思われます。
・標準PHP:FastCGI版7.1系 → FastCGI版7.4系
・MySQL:5.7系 → MariaDB10.6系

MovableType6はMovableType7にバージョンアップし解決しました。
掲示板(YY-BOARD)も新しいバージョンにアップデートしてデータも書き換えて解決しました。
ページ別アクセスカウンター(lime)と人気投票(votecom)は、jcode.pl をjacode.plに変更して、CGIのソースをrequire ‘./jacode.pl’;に変更して解決しました。

掲示板の最終更新日表示(getstamp)は相変われず、解決の糸口は見つかりません。

getstamp.cgiを動作させると

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at info@coreserver.jp to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.

の表示が出ます。

<SCRIPT type=”text/javascript”>
<!–
document.write(yybbs41_date);
//–>
</script>

が動作しません。

<SCRIPT type=”text/javascript”>
document.write( document.lastModified );
</script>

で、そのページの最終更新時の表示はできています。

SSIで動作させる事で更新日時を表示できることを知って試してみましたが動作しません。

.htaccess に

AddOutputFilter INCLUDES .html .htm

を追記すると、その階層下のhtml,htmでSSIが動作するようになりました。

ちなみに、バリュードメインやcoreserverのサイトには一切説明が無かったです。

ファイルの更新日時を表示するには
例えば、「sample.html」というファイルの更新日時を表示させたい場合は、
<!–#flastmod virtual=”sample.html” –>
をhtmlやhtmのソースファイルの中に記述するだけで動作します。

index.htm というページで 同じ階層の yybbs41のフォルダの中の dataというフォルダ内の log.cgi というファイルの更新日時を表示させたい場合は、

<!–#config timefmt=”%Y年%m月%d日” –>
<!–#flastmod file=”yybbs41/data/log.cgi” –>

で表示できます。
但し、同じサーバー内でもドメインをまたいでの検索表示は出来ません。

PHPをhtmlやhtmのファイル内に記述すると、いろんな事が出来るという事なので試してみました。

<?php
$last_modified = filemtime(”index.htm”) ;
echo “最終更新日は”;
echo date(“Y/m/d”, $last_modified);
echo “です。”;
?>

をhtml内に記述しましたが動作しませんでした。

.htaccess に

AddHandler application/x-httpd-php74cgi .html .htm

を追記すると、その階層下のhtml,htmでPHPが動作するようになりました。
ちなみに、バリュードメインやcoreserverのサイトには一切説明が無かったです

PHPの場合、ファイル名の指定は絶対アドレスは使えませんが、相対アドレスを使うと同じサーバー内であれば違うドメインのファイルでも指定できました。
他のドメインのトップの階層にあるページでhttps://kimassi.net/cgi/yybbs11/data/log.cgiの最終更新日を表示したい場合は

$last_modified = filemtime(“../kimassi.net/cgi/yybbs11/data/log.cgi”) ;

と指定すれば、ちゃんと表示できました。

但し、.htaccessの階層下のShiftJISのページが文字化けするようになりました。困りました。

バリュードメインに問い合わせしましたが、
文字コードは
/public_html/.fast-cgi-bin/phpご利用のバージョン.ini ファイル内の
下記部分で設定が可能となっております。
────────────────────
default_charset = “ご希望の文字コード”
────────────────────
にすれば良いと返答がきましたが、全く解決しませんでした。

仕方ないので、全てのページをUTF-8に変換してアップロードしました。
一応、解決しました。

バリュードメインから再度、返答がありました。

.htaccessでの改善は難しい状況でございました。

という事です。最低です。

2022年9月14日

SSIでの最終更新時が表示されなくなりました。
仕方ないので、PHPを使っての表示に変更しました。
同じ階層以下の全てのページをUTF-8に変換してアップロードしました。
ページが600ページくらいあったので大変な作業でした。
最初はホームページビルダーを使っていたのですが、面倒になって、途中でエディターで変換したのですが、
<meta http-equiv=”Content-Type” content=”text/html; charset=Shift_JIS”>

<META http-equiv=”Content-Type” content=”text/html; charset=Shift_JIS”>

<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>
に書き換えるのを忘れて、文字化けが出て大変でした。
GepReplaceというフリーソフトで一括で書き換えしました。

.htaccess が動作していないのかもしれません。

2022年9月15日

PHPのプログラムの日本語が文字化けするようになりました。
UTF-8に設定して、UTF-8形式で保存しているのにShift_JISで表示されているようです。
最近、バリュードメインがcoreserverのサーバーをいじったのではないかと思います。
バリュードメインに問い合わせしました。

2022年9月16日

夜になって、やっと返事がきました。
ご連絡いただき誠にありがとうございます。
現在お問い合わせが込み合っており、対応に時間がかかっている状況で
ございますが、可能な限り迅速に回答させていただきます。
恐れ入りますが、今しばらくお待ちいただけますと幸いでございます。
以上簡単ではございますが、ご報告申し上げます。
その他ご不明な点がございましたら、お気軽にお問い合わせください。

2022年9月19日

相変わらずバリュードメインから返答がありません。
/public_html/.fast-cgi-bin  の php72.ini の
; http://php.net/default-charset
default_charset = “Shift_Jis”

; http://php.net/default-charset
default_charset = “UTF-8”
に変更したら解決しました。
いつのまに、変わってしまったのだろう?

コアサーバーのメンテナンスの影響でYY-BOARDを新バージョンに入れ替え

2022年5月16日

2022/5/16(月) 00:00 ~ 09:00にコアサーバー(coreserver.jp) 最新・高速サーバーへの移転メンテナンスが行われました。
それ以降、CGIで動作している掲示板(YY-BOARD)もアクセスカウンター(lime)も人気投票(votecom)も掲示板の最終更新日表示(getstamp)も動作しなくなりました。

コアサーバー 最新・高速サーバーへの移転メンテナンスの影響だと思われます。
・標準PHP:FastCGI版7.1系 → FastCGI版7.4系
・MySQL:5.7系 → MariaDB10.6系
の影響が怪しいです。

2022年5月19日

まず、最初に掲示板(YY-BOARD)の復旧に着手しました。
コアサーバー(coreserver.jp)の運営しているバリュ-ドメインに問い合わせしたのですが、

jcode.pl をご利用されている場合、
かなり古いものとなりますため、恐らくリニューアル後の
Perlバージョン(5.26)には対応していないかと存じます。
恐れ入りますが、
jcode.pm や jacode.pl を始めとした代替ライブラリでのご利用を
ご検討くださいませ。

という返答が1日後にありました。
jcode.pl をjacode.plに変更して、CGIのソースをrequire ‘./jacode.pl’;に変更しても動作しません。

YY-BOARDを提供しているKENT-WEBに行くと、2021/07/24に新しいバージョンのYY-BOARDが掲載されていたので、インストールしてみました。

モバイル対応になっていて、なんとか動作する事を確認しました。

init.cgi の設定で

# 掲示板タイトル
$cf{bbs_title} = “金沢近郊の街 住みやすさ掲示板”;

# 戻り先【URLパス】
$cf{homepage} = “https://kimassi.net/”;

# アイコンモード機能
# 0 : アイコン不使用
# 1 : アイコン使用
$cf{icon_mode} = 0;

# 返信がつくと親記事をトップへ移動 (0=no 1=yes)
$cf{topsort} = 1;

# ミニカウンタの設置
# → 0=no 1=テキスト 2=画像
$cf{counter} = 0;

# 投稿があるとメール通知する (sendmail必須)
# 0 : 通知しない
# 1 : 通知する
$cf{mailing} = 1;

# メールアドレス(メール通知する時)
$cf{mailto} = ‘kimassi@spacelan.ne.jp’;

# URLの自動リンク (0=no 1=yes)
$cf{autolink} = 0;

# 過去ログ生成
# → 0=no 1=yes
$cf{pastkey} = 1;

を設定しました。

アイコンやホームページ参照は不要なので、
temp/bbs.html 、temp/edit.html、temp/read.html、temp/topic.htmlを書き換えました。

<tr>
<th>参照先</th>
<td><input type=”text” class=”reg-url” name=”url” value=”!url!”></td>
</tr><tr>
<th>アイコン</th>
<td>
<select name=”icon”>
<!– op_icon –>
</select>
<!– pop_icon –>
[<a href=”!bbs_cgi!?mode=icon” target=”popwin” onclick=”popup(‘!bbs_cgi!?mode=icon’)”>アイコン参照</a>]
<!– /pop_icon –>
</td>
</tr>

を削除しました。

!icon:user.png! <b>!name!</b> !icon:time.png! !date! !url! <span class=”num”>No.!num!
の部分を
<b>!name!</b> !icon:time.png! !date! <span class=”num”>No.!num!
に書き換えました。

同様に、temp/bbs-res.html 、temp/past.html も同じ個所を訂正しました。

掲示板のタイトルの下に説明書きを入れたかったのとカウンターを省きたかったので

<div id=”head”>
<div id=”head-in”>
<div id=”head-ttl”><h1>:: !bbs_title! ::</h1></div>
<div id=”head-cnt”>!counter!</div>
<div id=”head-clr”></div>
</div>
</div>


<div id=”head”>
<div id=”head-in”>
<div id=”head-ttl”><h1> !bbs_title! </h1></div>
<div id=”head-clr”></div>
</div>
金沢で住むならどこが良いですか?学校や地域の良いところ悪いところ教えて
</div>

に書き換えました。

admin.cgi の修正画面のアイコンやホームページ入力の下記の部分を削除しました。

<tr>
<th>URL</th>
<td><input type=”text” name=”url” value=”$url” size=”40″></td>
</tr><tr>
<th>アイコン</th>
<td>
<select name=”icon”>
$op_icon
</select>
</td>
</tr>

メールアドレスの記入は任意にしたかったので
regist.cgiを書き換えました。

if ($in{email} ne ” && $in{email} !~ /^[\w\.\-]+\@[\w\.\-]+\.[a-zA-Z]{2,6}$/) {
$err .= “Eメールの入力内容が不正です<br>”;
}

を削除しました。

管理人へのメール送信で掲示板名が表示されないので
regist.cgiを書き換えました。

掲示板に投稿がありました。の下の行に
$cf{bbs_title}
を追加しました。

最初、管理画面に入れませんでした

説明文では、
init.cgi を エディタ で開いて以下の箇所を修正します。
 $cf{password} = ‘0123’;

と説明されていますが、init.cgiに$cf{password} = ‘0123’; が見当たりません。
KENT-WEBのサポート掲示板で相談すると、実際にはinit.cgiにパスワードを保存しない方式に変わっているとの事でした。
デフォルトで
username:admin
password:password
と設定してあるとの事でした。

掲示板(YY-BOARD)の問題は全て解決しました。

人気投票(votecom)は
jcode.pl をjacode.plに変更して、CGIのソースをrequire ‘./jacode.pl’; に変更して動作しました。

ページ別アクセスカウンター(lime)も
jcode.pl をjacode.plに変更して、CGIのソースをrequire ‘./lib/jacode.pl’; に変更して動作しました。

掲示板の最終更新日を表示するgetstampが動作しません。
javascript以外で対応しようとしてSSIも試してみましたが
<!–#flastmod virtual=”/cgi/yybbs11/data/log.cgi” –>
での表示も動作しません。

コアサーバー(coreserver.jp)の運営しているバリュ-ドメインに問い合わせしたのですが、サポート外なので、そちらでwebサイト開発者様やCGIファイル提供元様へご問い合わせしろだって。
最低!!!!
こういう事はサーバー側なら当然把握しているはずなのに、前もって起こりえる事を事前に通知しても良いのではないのかと思います。

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月6日

新しいバージョンでYY-BOARDの記事 [タイトル] 部の長さの変更ができないことに気づきました。
init.cgiに
# 記事 [タイトル] 部の長さ (全角文字換算)
$cf{sub_len} = 20;
という設定があるのですが、入力画面の時点で12文字しか入力を受け付けないのです。

tmpl/bbs.htmlの

<tr>
<th>タイトル</th>
<td>
<input type=”text” name=”sub” class=”reg-url” value=”!sub!” maxlength=”12″>
<input type=”submit” class=”reg-btn” value=”投稿”>
</td>
</tr>

のmaxlength=”12″の数字を書き換えることで解決しました。

2022年8月15日

スパム投稿防止のために .htaccess で特定IPアドレスのアクセスを制限しているのですが、何故か正常に動作しません。

通常、 .htaccess に deny from 123.456.789.000 に記述すれば、IPアドレス123.456.789.000のアクセスを禁止できるのです。
いろいろ調べたら、 .htaccess の最後の行に空白の行を入れないといけないのを、怠っていたのが原因のようです。
これで解決すると良いなあ

MovableType7のリッチテキストでコピペができない

サーバーのリリューアルでMovableType6が使えなくなって、仕方ないのでMovableType7に更新しました。

記事を投稿する際に、リッチテキストで編集しているのですが、コピー&ペーストが出来なくなりました。
コピーしたい部分を右クリックするとリンク挿入になるのです。
かなり困りました。

ネットで検索して、Ctrl+C でコピーが出来て Ctrl+V でペーストが出来る事が判明しました。

Ctrl+Z 直前の処理の取り消し
Ctrl+Y 直前の処理のやり直し
Ctrl+X 切り取り

というのも覚えておくと便利そうです。