ホーム
ヘルプコンタクトサイトマップ

Keyword Child Tree cbbs マルチ設定

Child Tree のマルチ設定機能で複数の掲示板を作る。

UPDATE : 2007/11/25
Child Treeには一つのスクリプトで複数の掲示板が運営可能な「マルチ設定機能」があります。
このマルチ設定機能を使い3つの掲示板を作ってみましょう。

マルチ設定機能を利用するには set.cgi set1.cgi set2.cgi を以下のように修正する必要があります。
なおオリジナルには set.cgi しかありませんので、この set.cgi を複製した上でファイル名を変更してください。

set.cgiの設定 (1つ目の掲示板) → 以下リスト中の 赤色文字 を書き換える。 set1.cgiの設定 (2つ目の掲示板) → 以下リスト中の /set を全て /set1 に書き換える。 set2.cgiの設定 (3つ目の掲示板) → 以下リスト中の /set を全て /set2 に書き換える。

set.cgi の設定
#--- [カウンタ設定] ------------# $cou = 0; # カウンタの設置 (1=YES 0=NO) $fig = 5; # カウンタの桁数 $c_co = "#38B52F"; # テキスト=> テキストの色 $m_wid= 8; # 画像=> 画像の横サイズ $m_hei= 12; # 〃 => 画像の縦サイズ $m_pas= ""; # 〃 => ディレクトリのパス(使用しない場合そのまま) $c_f = "./set/ccount.dat"; # カウンタファイル $cloc = "./set/c.loc"; # カウンタロックファイル #--- [ファイル名設定] ----------# $cgi_f= "./cbbs.cgi"; # このファイル $srch = "./srch.cgi"; # 検索/過去ログ閲覧用CGI $log = "./set/cbbs.dat"; # 記録ファイル $lockf= "./set/cbbs.loc"; # ロックファイル $bup = 0; # バックアップをとる? (NO=0 YES=x(x は更新頻度日数を入れる)) $bup_f= "./set/cbbs.bak"; # バックアップファイル $locks = 1; # ファイルをロックする?(1=YES 0=NO) #--- [新着記事設定] ------------# $new_t = 24; # NEW/UPアイコンがつく新着記事は何時間以内の記事? $new_s = 10; # 新着記事を表示する記事数 $new_su= 1; # 新着記事のソート順(1=新しいほど上 0=1の逆) #--- [発言ランク設定] ----------# $M_Rank= 1; # ランキングを取得?(1=YES 0=NO) $RLOG = "./rank.dat"; # ランキングログ $RDEL = 30; # ランキングから削除される日数 $RBEST = 30; # ランキング表示数 # ●レベル設定 右に行くほど高い(設定しない場合は空行 @RLv=(); にする) @RLv = ("一般人","付き人","軍団","ファミリー","ベテラン","大御所"); $RSPL = 50; # レベルの区切り単位(初期値だと50回ごとにレベルアップ) $RGimg = ""; # グラフに画像を使う場合その画像のURLを入れる $RGhei = 7; # グラフ画像の縦幅 # ●ランク外にする人の名前(ない場合は空行 @NoRank=(); にする) @NoRank= ("管理人の名前","りゅういち"); #--- [検索設定] ----------------# $Kyo_f = "#F9FF06"; # 検索語強調表示の背景色 $Met = "GET"; # 検索の際のデータ受け渡し形式(POST or GET) @klog_h= (20,30,40,50); # 検索表示件数(左端は過去ログ表示件数としても利用) $klog_a= 1; # 全過去ログ検索を許可する?(1=YES 0=NO) #--- [過去ログ関係] ------------# $klog_s= 1; # 過去ログ機能を使う?(1=YES 0=NO) $klog_c= "./set/klog.log"; # 過去ログ数のカウントファイル $klog_d= "./set"; # 過去ログ生成ディレクトリ $klog_l= 100; # 過去ログ記録 KB 数
 注意  書き換えミス・書き忘れをすると誤動作する危険があるので書き換えは慎重に行ってください。


ファイルは以下のように転送します。

 |
 +--- cbbs
 |   | jcode.pl
 |   | cbbs.cgi
 |   | srch.cgi
 |   | set.cgi  ←1つ目の掲示板の設定ファイル
 |   | set1.cgi ←2つ目の掲示板の設定ファイル
 |   | set2.cgi ←3つ目の掲示板の設定ファイル
 |   | rank.dat
 |   |
 |   +--- set ←このディレクトリを新規作成(1つ目の掲示板)
 |   |   | cbbs.dat
 |   |   | cbbs.bak
 |   |   | ccount.dat
 |   |   | klog.log
 |   |   | ←ここに過去ログ・ロックファイルなどが自動生成される
 |   |   |
 |   |
 |   +--- set1 ←このディレクトリを新規作成(2つ目の掲示板)
 |   |   | cbbs.dat
 |   |   | cbbs.bak
 |   |   | ccount.dat
 |   |   | klog.log
 |   |   | ←ここに過去ログ・ロックファイルなどが自動生成される
 |   |   |
 |   |
 |   +--- set2 ←このディレクトリを新規作成(3つ目の掲示板)
 |   |   | cbbs.dat
 |   |   | cbbs.bak
 |   |   | ccount.dat
 |   |   | klog.log
 |   |   | ←ここに過去ログ・ロックファイルなどが自動生成される
 |   |   |
 |   |
 |   +--- file
 |   |   | i.gif all.gif arc.gif ...(共通アイコン)
 |   |   | ←ここにアップロードしたファイルが保存される。
 |   |
 |   +--- icon
 |   |   | ktai_m.gif coara.gif coara_m.gif ...(共通顔アニアイコン)
 |

★重要★ セキュリティーを考慮したログの保存場所

CGI に知識がある方であれば上記説明に重要な問題があるのを発見できるでしょう。
「何のことかさっぱり…?」という方は以下からの説明をじっくりお読みください。
■外部からログが観覧されてはいませんか?
既にChildTreeを運用されている方は以下の方法でブラウザから直接ログにアクセスしてみてください。
http://www.example.com/cbbs/cbbs.dat
これでログが観覧(もしくはダウンロード)できてしまった方はセキュリティ上大変危険な状態であるわけです。
※ログには投稿者のIPアドレスやメールアドレスなど重要な個人情報が記録されています。
■複雑な名前のディレクトリの中にログを隠す
そこで重要なログを外部から観覧されぬよう管理人として何らかの対策をする必要(義務)があります。
以下のような複雑な名前のディレクトリにログを置くようにしておけば外部からログにアクセスすることはほぼ不可能です。
public_html
 |
 +--- cbbs
 |   | jcode.pl
 |   | cbbs.cgi
 |   | srch.cgi
 |   | set.cgi
 |   | rank.dat
 |   | index.html  ←ディレクトリ内が丸見えにならぬようダミーのindex.htmlを置いておく[重要]
 |   |
 |   +--- 15Ug2ub6 ←このような複雑なディレクトリ名にする[重要]
 |   |   | cbbs.dat
 |   |   | cbbs.bak
 |   |   | ccount.dat
 |   |   | klog.log
 |   |   | .htaccess ←このディレクトリの中のファイルにアクセス制限をかける
 |   |
 |   |

ディレクトリにダミーの index.html を置く理由
一部ですがディレクトリの中が丸見えになってしまうサーバーがあります。(例→ さくらインターネットなど)
中が丸見えになってしまったらいくら複雑なディレクトリ名にしても意味がありませんので、このようなサーバーをお使いでしたら必ず上記場所にダミーの index.html (中味は空でよい)を置いてください。

「マルチ設定機能で複数の掲示板を作る。」では説明上 set,set1,set2 という安易なディレクトリ名を付けましたが、本来ですとこのような簡単なディレクトリ名ではなく大文字・小文字・英数字などを組み合わせて複雑なディレクトリ名にしなければなりません。

set → 15Ug2ub6
set1 → uZBx2j5j
set2 → HKu8DFdc

そしてディレクトリ名を変えたら以下のように set.cgi の中のディレクトリのパスも忘れず変えてください。
これを忘れるとChildTreeからログを読むことができなくなってしまいます。

set.cgi パス変更例
$c_f = "./15Ug2ub6/ccount.dat";   # カウンタファイル
$cloc = "./15Ug2ub6/c.loc";     # カウンタロックファイル
$log = "./15Ug2ub6/cbbs.dat";    # 記録ファイル
$lockf= "./15Ug2ub6/cbbs.loc";   # ロックファイル
$bup_f= "./15Ug2ub6/cbbs.bak";   # バックアップファイル
$klog_c= "./15Ug2ub6/klog.log";   # 過去ログ数のカウントファイル
$klog_d= "./15Ug2ub6";       # 過去ログ生成ディレクトリ

これで外部からログを観覧できないようにできました。
しかしこれでもまだ100%安全とはいえません。何らかの方法でディレクトリ名がわかってしまったら中のログを観覧されてしまいます。
そこでサーバが .htaccess を使えるなら以下の方法も試してください。(XREA・ロリポップ・さくら…等)

.htaccess でアクセス制限する
ディレクトリ内に以下の .htaccess を置くことでブラウザからログにアクセスできないようにできます。

<Files ~ "\.(dat|log|txt|bak)$">
deny from all
</Files>

上記 .htaccess をログが置いてあるディレクトリ内に配置してください。
参考:.htaccess活用法  htaccessの小技編
PageTop
◆このページの感想・ご意見などお気軽にお寄せください。(全角40文字まで)
お名前 コメント 削除キー
 
[001] 11/23 : セキュリティーに関する説明を追記しました。(疾風@管理人)

記事No: 削除キー

MiniLog Ver1.21
Copyright© WebCraft All Rights Reserved.
http://www.sippu.com  Since:9.13.2002