ホームに戻る > スレッド一覧 > 記事閲覧
[126] 新規スレッド作成間隔とレス投稿間隔の時間が正常に適用されません
日時: 2014/07/26 07:26
名前: Sora ID:wZ2YXkyY

こんにちは。Soraと申します。
以前はアンカーリンクの件で大変お世話になりました。
きりしま式様のWeb Patioを日々ご利用させて頂いております。ありがとうございます。

この度、
新規スレッド作成とレス投稿間隔の時間制限がうまく適用されないことでご連絡をさせて頂きました。

init.cgiを具体的には以下のように設定しております。
***********
# スレッド作成間隔(秒)
$wait_thread = 300;

# レス投稿間隔(秒)
$wait_response = 60;
***********

色々とテストを行ってみた結果、結論から先に申しますと、
原因としては、アクセスが多人数ある掲示板では有効に効いていないのでは、と感じました。

以下がテストした内容です。

1)掲示板パス /hoge/test/
アクセスが私1人のテスト用の掲示板では、スレッドの連続作成は、きっちり300秒の制限が効いています。(299秒ではスレッドが作成できない、301秒では新たにスレッド作成できる)

2)掲示板パス /hoge/bbs/
(参考までに、稼働掲示板は、1日10万PVぐらいとなります。)
実際に稼働している多人数がアクセスする掲示板では、wait_threadの時間制限が、効いていることは効いているのですが、制限される時間がまちまちになってしまいます。下のように、1)と同様の設定です。
$wait_thread = 300;

直近の4回ほどスレッド作成時間を記録してみましたが、300秒の制限ではなく、
1回目:139秒でスレッド作成OK(138秒ではスレッド作成できない)
2回目:24秒でスレッド作成OK(23秒ではスレッド作成出来ない。以下同)
3回目:80秒でスレッド作成OK
4回目:72秒でスレッド作成OK

とランダムな制限時間となってしまいます。
レス投稿間隔も同様です。

1)で運用しているサーバ上のディレクトリ /hoge/test/ を、/hoge/bbs/ にリネームしてのテスト結果ですので(設定ファイル等は変更していません。)、アクセスしてる人の数ぐらいしか差異がないので、それが原因と感じました。

荒らし対策にぜひこの設定を有効に活用できればと思いますので、お手数ではございますが、
原因と、もし解決策等ございましたらお教え頂けませんでしょうか。

利用させて頂いているバージョンは、patio_34k105となります。

どうぞよろしくお願いいたします。
メンテ

(全部表示中) もどる スレッド一覧 新規スレッド作成

追記させて頂きます。 ( No.1 )
日時: 2014/07/26 07:51
名前: Sora ID:wZ2YXkyY

追記いたします。

上記の1)のテストでは、複数回のテストでも正常に時間制限が効いておりました。

1回目:301秒でスレッド作成OK(299秒ではスレッド作成できない)
2回目:301秒でスレッド作成OK(299秒ではスレッド作成できない、以下同)
3回目:301秒でスレッド作成OK
4回目:301秒でスレッド作成OK

プログラムには無知ではありますが、少し拝見させて頂きましたが、

# 現行ログindex【サーバパス】
$nowfile = './data/index1.log';

が関係しているのかなと思い、index1.logを見てみましたが原因が分かりませんでした。。
(index1.logの1行目しかホストの記録がないのとは無関係でしょうか?)

何卒よろしくお願いいたします。
メンテ
ホストは同一ホストです。 ( No.2 )
日時: 2014/07/26 14:23
名前: Sora ID:wZ2YXkyY

失礼しました。
1)2)のテストは、ホストは変動ホストではなく全て同じホストとなります。
メンテ
確かにそうですね ( No.3 )
日時: 2014/08/10 15:56
名前: きりしま◆.CzKQna1OU ID:yw7K62H2 メールを送信する

確かにそうですね。

いま、ソースを確認したところ、
「最後の書き込みをした人と同一IPアドレスからの書き込みの時間制限」
をしているだけの動作になると思いますので、
他の人が書き込みをするとリセットされることになります。
そのため、
短時間に沢山の人が交互に書き込みをするような掲示板では
時間制限が有効に働かないと思われます。
(または複数の迷惑書き込み業者に同時に攻撃されたときに防御できないことになります)


ご指摘通り、チェックに使用するデータが1 IPアドレス分しかないわけですから、
別のファイルにIPアドレスごとに記録して、
それを使うような変更が必要ですね。

時間を見てやってみようと思います。
メンテ
試しにやってみました ( No.4 )
日時: 2014/08/10 22:47
名前: きりしま◆.CzKQna1OU ID:yw7K62H2 メールを送信する

試しにやってみました。
テスト掲示板が新仕様になっています。

新規投稿・レス投稿を別のファイルでホスト毎に記録します。
(サーバー負荷が想像つかないので、記録数の上限の設定 $hostnum を作ってみています)
新規投稿やレス投稿時は、それぞれのログファイルで同一のホストを調べて、
その値を調べるようにしています。

変更はregist.cgiで、
パラメータ設定のためにinit.cgi、
ログの保管用に
thread.log
response.log
を用意します。

上記ファイル(テスト版)
http://kirishima.it/patio/regist_34k110b.zip

この掲示板はそんなにアクセスがないので、
確認のしようがないので、テスト版を提供します。
現在配布しているバージョンより、
本件以外も微妙に変更されているソースからなので…。

しばらくしたらソース整理して配布バージョンとして更新しようと思っています。

何かお気づきの点があったらお知らせ下さい。
メンテ
ログが正常に記録されないようです。。 ( No.5 )
日時: 2014/08/11 18:34
名前: Sora ID:14IpsqDg

きりしま様

お返事下さいましてありがとうございます。

なるほど、そのような仕様になっていたのですね。
ありがとうございます、納得いたしました。

また、プログラムの更新をして頂きましてありがとうございます。

さっそく設置とテストをさせて頂いたのですが、
thread.logとresponse.logのログが正常に記録されていないように見受けられました。。

スレッド作成とコメント投稿を、家の回線とスマホの2回線で
テスト掲示板で試してみたのですが、ログが1ログ(1行)しか記録されないようでした。
(テスト掲示板は私しかアクセスしない掲示板です。)
(init.cgiは$hostnum = 10 で設定しています。)
(きりしま様配布のpatio_34k105に、頂いた設定ファイルを上書きしています。)

スマホから書き込みで、response.logが、

response.log
*****
s959131.xgsspn.imtp.tachikawa.spmode.ne.jp<>1407747083<>
*****

家回線からの書き込みで、

response.log
*****
15521352.zaq.ne.jp<>1407746325<>
*****

ように、1行しか記録されないようでした。
スレッド作成後のthread.logも同様となります。



多人数がアクセスする、稼働している掲示板でもテストしてみましたが、こちらはログは1行ではありませんでしたが、正常にログが記録されず、
下はresponse.log内容ですが、10秒ごとにサーバのresponse.logを開いたログを参考までに添付させて頂きます。

(init.cgiは$hostnum = 1000 で設定してみました。)
(ログの内容は一部数字を変えさせて頂いております。)

response.log
*****
softbank220044242153.bbtec.net<>1407748234<>
i222-224-60-294.s05.a008.ap.plala.or.jp<>1407748226<>
p2040-adsao04yokonib2-acca.kanagawa.ocn.ne.jp<>1407748211<>
58-290-222-224f1.osk3.eonet.ne.jp<>1407748208<>
p22224-ipngn2601marunouchi.tokyo.ocn.ne.jp<>1407748205<>
202.252.88.57<>1407748200<>
softbank226025248024.bbtec.net<>1407748197<>
ntfkok259257.fkok.nt.ftth4.ppp.infoweb.ne.jp<>1407748196<>
*****

10秒後の内容

response.log
*****
225-24-48-272.rev.home.ne.jp<>1407748254<>
p2224-ipngn200205kanazawa.ishikawa.ocn.ne.jp<>1407748250<>
softbank220044242153.bbtec.net<>1407748234<>
i222-224-60-294.s05.a008.ap.plala.or.jp<>1407748226<>
*****

さらに10秒後の内容

response.log
*****
user027220.htv-net.ne.jp<>1407748288<>
FL2-229-242-229-180.ymn.mesh.ad.jp<>1407748276<>
p2040-adsao04yokonib2-acca.kanagawa.ocn.ne.jp<>1407748261<>
225-24-48-272.rev.home.ne.jp<>1407748254<>
p2224-ipngn200205kanazawa.ishikawa.ocn.ne.jp<>1407748250<>
*****

印象ですが、
p2224-ipngn200205kanazawa.ishikawa.ocn.ne.jp<>1407748250<>
などのホストが後行に押し出されていって消えてしまっていく?ような印象を受けました。
何かの参考になれば幸いです。

試してみた限りでは上記の点が気になりましたので、
お手数をお掛けいたしますが、ご確認頂いてもよろしいでしょうか。

どうぞよろしくお願いいたします。
メンテ
連続スレッド作成禁止時間と連続レス投稿禁止時間の設定はいくつですか? ( No.6 )
日時: 2014/08/12 21:08
名前: きりしま◆.CzKQna1OU ID:mg6WJM/I メールを送信する

新規スレッド作成時、返信投稿時の負荷を考慮して、
それぞれの書き込み禁止時間($wait_thread, $wait_response)をもとに、
新しい書き込みがあったときに、
すでに書き込み禁止時間が経過しているIPアドレスのログは捨てる仕様にしているつもりです。

そのため、たとえ $hostnum が1000件記録する設定でも、
1000件溜まるということはないかと思います。

連続スレッド作成禁止時間と
連続レス投稿禁止時間とのかねあいはいかがでしょうか?

また、ログ内の記録されている位置は、新しい書き込みをしたホストの記録が入る度に
下に下がっていって、最終的には押し出される形で消えるか、
途中で書き込み制限時間外になって消えるかするはずです。
(もちろん、新たな書き込みがあるまで残っているので、書き込みがある程度頻繁な掲示板でないと動作がよく確認できないかも知れません)
メンテ
失礼いたしました、動作確認できました。 ( No.7 )
日時: 2014/08/13 03:12
名前: Sora ID:TwCpxxTA

お返事頂きましてありがとうございます。

結論から申しますと、正常に動作確認が出来ました。
お返事頂いてから確認してみましたが、仰るように設定が以下のようになっており、こちらが原因でした。
******
# 新規スレッド作成間隔(秒)
$wait_thread = 5;

# レス投稿間隔(秒)
$wait_response = 5;
******

設定を以下のように修正して動作が確認出来ました。
(先のご報告でも下の設定をしたものと勘違してしまっておりました。。)
******
# 新規スレッド作成間隔(秒)
$wait_thread = 1200;

# レス投稿間隔(秒)
$wait_response = 40;
******

こちらのミスで、作者様の貴重なお時間を頂いてしまいお手数をお掛けしました。
仕様についても、とても参考になりました。

稼働させて頂きまして、何かありましたら再度ご連絡をさせて頂ければと思いますので、
どうぞよろしくお願いいたします。

これからもきりしま式様のWeb Patioを末永くご利用させて頂きます。
この度は、プログラムの機能追加をして下さいましてありがとうございました。感謝致します!
メンテ

(全部表示中) もどる スレッド一覧 新規スレッド作成

題名 タイトルは次の画面で設定してください
名前  「名前#任意の文字列」でトリップ生成
E-Mail 入力すると メールを送信する からメールを受け取れます(アドレス非表示)
URL
パスワード (記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント

   クッキー保存