ごあいさつ

この度は当CGIをダウンロードして頂き、誠にありがとうございます。
dorama.cgi及びdorama_ini.cgi、dorama_denyallow.cgiファイルを編集を行う前に、当マニュアルをぜひご一読ください。

なお、このマニュアルはWeB DoRaMaを設置した人向けに書かれております。

前書き

俺がこのCGI/Perlの改造を行った理由は、悪質な荒らし・利用者の指揮及び連続投稿・自作自演によるによるコンテンツ支配が多発したのと、ウェブブラウザ搭載の携帯電話の普及に伴い、ネットワーク人口が増大した事が契機なのかも知れません。
しかし、このスクリプトに出会ってしばらくして、改造を行いました。
初期版は環境変数とかを追加しただけの粗末な物でしたが携帯電話向けの掲示板スクリプト及び各キャリアの公式ホームページを閲覧し、調べ上げ、他のスクリプトから移植した結果が現在のスクリプトの原型ともなりました。
その後、現在に至るまで様々な改変とスクリプトの最適化等を行った為、現在の姿に近付きました。
携帯経由のアクセスによるレイアウトの変更及びスクリプトの改良、アクセスキー使用による利便性の向上、セキュリティの向上、内部機能の改良、ロックスクリプトの改変により現在の姿になりました。

苦い経験があった為、現在の物が出来た事になったのは紛れも無い事実なのかも知れません…

★機能説明

Shigeto Nakazawa氏作のWeB DoRaMaにいくつかの荒らし対策機能を強化たものです。

変更点は以下のとおりです。

『携帯のみの新機能』


★設置方法

アーカイブには以下のファイルが含まれています。
    manual/                   ... ReadMeファイルディレクトリ
    readme.html               ... このファイルです
    readme.css                ... このファイルのスタイルシート
    icon                      ... お楽しみファイル
    dorama.cgi                ... CGIスクリプト
    lib/                      ... ライブラリディレクトリ
    xxxxx.pl                  ... 各機種向け表示ライブラリ
    jacode.pl                 ... 日本語変換ライブラリ(Thanks Kazumasa Utashiro)
    data/                     ... 各種データディレクトリ
    dorama_denyallow.cgi      ... 投稿制限及び許可設定ファイル
    dorama_init.cgi           ... 設定ファイル
    dorama.log                ... 記録ファイル
    dorama_bak.log            ... 記録ファイル(バックアップ)
    dorama.act                ... 出演者用ファイル
    dorama_bak.act            ... 出演者用ファイル(バックアップ)
    accesslog.txt             ... 簡易アクセスログ記録ファイル
    errlog.txt                ... エラー記録ファイル
    common/                   ... スタイルシート等ディレクトリ
    css/                      ... スタイルシートディレクトリ
    xxxxx.css                 ... 各機種向けスタイルシート
    image/                    ... イメージファイルディレクトリ
    dorama.gif                ... ドラマの画像ファイル(Thanks Mina)
    dorama/                   ... 画像変換ディレクトリ
    heart.jpg                 ... 画像変換用画像
    heart_m.gif               ... 画像変換用画像
    heart_m.png               ... 画像変換用画像
    namida.jpg                ... 画像変換用画像
    namida_m.gif              ... 画像変換用画像
    namida_m.png              ... 画像変換用画像
    makka.jpg                 ... 画像変換用画像
    makka_m.gif               ... 画像変換用画像
    makka_m.png               ... 画像変換用画像
    jito.jpg                  ... 画像変換用画像
    jito_m.gif                ... 画像変換用画像
    jito_m.png                ... 画像変換用画像
    kyupin.jpg                ... 画像変換用画像
    kyupin_m.gif              ... 画像変換用画像
    kyupin_m.png              ... 画像変換用画像
BIGLOBEのwww5?.biglobe.ne.jpサーバーの場合は、「★BIGLOBE(www5?.biglobe.ne.jp)の設置」を読んでください。
ただしCGIの実行がwww5?.biglobe.ne.jpドメインで実行可能になっている場合は通常通り設置できます。

まずdorama.cgiを設置環境に応じて編集します。
一行目が設置するサーバーのPerlのパスと異なっている場合は変更します。

普通は全てのファイルを同じディレクトリ(フォルダ)内に置けば良いです。
(プロバイダによって指定されている場合は、オプション設定で変更の必要あり)

以下のファイルをアスキーモードで転送し、パーミッションを後の[]の中の値に設定します。
設置するHP領域のサポートページで推奨している値があったらそちらを設定します。
特に理由がなければ、セキュリティのためなるべく左の方の値を設定するようにしてください。
 ・dorama.cgi             [700|705|755]
 ・xxxxx.pl               [700|705|755]
 ・dorama_denyallow.cgi   [700|705|755]
 ・dorama_init.cgi        [700|705|755]
 ・jacode.pl              [600|604|644]
 ・dorama.log             [600|606|666]
 ・dorama_bak.log         [600|606|666]
 ・dorama.act             [600|606|666]
 ・dorama_bak.act         [600|606|666]
 ・accesslog.txt          [600|606|666]
 ・errlog.txt             [600|606|666]
 ・common                 [705|755]
 ・css                    [705|755]
 ・xxxxx.css              [604|644]
 ・image                  [705|755]
 ・dorama.gif             [604|644]
 ・dorama                 [705|755]
 ・heart.jpg              [604|644]
 ・heart_m.gif            [604|644]
 ・heart_m.png            [604|644]
 ・namida.jpg             [604|644]
 ・namida_m.gif           [604|644]
 ・namida_m.png           [604|644]
 ・makka.jpg              [604|644]
 ・makka_m.gif            [604|644]
 ・makka_m.png            [604|644]
 ・jito.jpg               [604|644]
 ・jito_m.gif             [604|644]
 ・jito_m.png             [604|644]
 ・kyupin.jpg             [604|644]
 ・kyupin_m.gif           [604|644]
 ・kyupin_m.png           [604|644]
dorama.gif等はバイナリモードで転送します。

★Nifty(homepage?.nifty.com)の設置

画像ファイルはhttp://homepage?.nifty.comでないと表示されないので、$back_urlをhttp://homepage?.nifty.com/アカウント名/配下のディレクトリに設定してdorama.gifを対応したディレクトリにバイナリモードで転送します(?は自分のHP領域のサーバーの番号です)。

以下のファイルをcgi-binディレクトリの下のフォルダに
アスキーモードで転送し、パーミッションを後の[]の中の値に設定します。
 ・dorama                 [600|604|644]
 ・dorama.cgi             [700|705|755]
 ・xxxxx.pl               [700|705|755]
 ・dorama_denyallow.cgi   [700|705|755]
 ・dorama_init.cgi        [700|705|755]
 ・jacode.pl              [600|604|644]
 ・dorama.log             [600|606|666]
 ・dorama_bak.log         [600|606|666]
 ・dorama.act             [600|606|666]
 ・dorama_bak.act         [600|606|666]
 ・accesslog.txt          [600|606|666]
 ・errlog.txt             [600|606|666]
dorama.gifとdorama.cssは別フォルダへ転送します。

エラーログをブラウザで確認したい場合は$error_logを/homepage/ディレクトリの下にしておくとエラーログをブラウザで見ることが出来ます。

★設置後の動作確認

転送とパーミッションの設定が完了したらdorama.cgiにアクセスしてうまく設置できているか確認します(BIGLOBEのwww5で始まるサーバーの場合はdorama.cgiにリンクしたHTMLからアクセスします)。
始めてドラマが動いた時は、
???「」
???「」
???「」
???「」
???「」
と表示されたら正常に動作しています。
後は何回か登録するとちゃんとしたドラマになります。

あとはカスタマイズ項目を自分のページに合わせて設定して、出演者エディタで出演者を設定すれば設定完了です。
セキュリティー項目はセキュリティー項目の設定についてを参照してください。
出演者エディタで設定する場合、削除すると表示がおかしくなるのでなるべく削除は避けるようにしてください。

★トラブルについて

CGIに不都合がある場合はオリジナルの配布元のCGI-StaTionのトラブルシューティングのページとサポート掲示板が参考になります。
ただしShigeto Nakazawa氏の迷惑になりますのでサポート掲示板やShigeto Nakazawa氏へのメールでの質問はしないでください。
質問やトラブルの報告は当方の伝言板をご利用下さい。
CGIの知識があまりないので(^^;)、充分な対応ができない場合がありますので
あらかじめご承知ください(ちなみに俺もですが…)。

★セキュリティ項目の設定

投稿制限及び許可設定ファイル

  1. 禁止ワード:@BAD_WORD = ('〜','〜');
    書きこまれたくない言葉をここに記述すると、その言葉を含む単語などを投稿できなくします。
    他のその言葉を含む内容も排除されるので設定には注意してください。
    @BAD_WORD = ('禁止ワード1','禁止ワード2','…');というように '' の中に単語を書き、 , で区切って増やします。
    間の空白を削ってからチェックするので、空白を入れないようにしてください。
  2. 投稿規制:@check_ipad = ('〜','〜');
    イタズラをする人のIPアドレス/リモートホスト/携帯端末情報/クッキーからの投稿を排除します。
    イタズラする人のIP/ホスト/携帯端末情報/クッキーを記述することで、そのIPアドレスからの投稿はできなくなります。
    ダイアルアップ等の場合はIPアドレスが毎回変ることがあります。
    (例)
    IP1A123.tky.host.ne.jp
    IP1A001.tky.host.ne.jp
    と変わる場合、その場合は先頭に*を付けてホスト名の変化する数字より後の部分を指定します。
    @check_ipad = ('*tky.host.ne.jp');

    ホスト名が獲得できなくてIPアドレスのみになる場合は最初の3つだけを記入するようにします。
    @check_ipad = ('123.456.789.');
  3. 投稿規制(クッキー):@check_cokkie = ('〜','〜')
    イタズラをする人のIP/ホスト/携帯端末/クッキーからの投稿を排除します。
    イタズラする人のIP/ホスト/携帯端末/クッキーを正確に記述することで、そのIP/ホスト/携帯端末/クッキーからの投稿はできなくなります。
    また、ここに''を追加するとクッキーを無効にした状態での投稿を排除します。
    ただしクッキーを無効にしたり削除すると投稿できてしまいます。
  4. 匿名プロクシ制限:$check_proxy = n;
    匿名プロクシを使って荒らし行為が行われる場合に設定します。
    この匿名プロクシ制限と、上のIPアドレス制限でほとんどの荒らしを排除可能です。
    1. 値の意味は以下の通りです。
    2. 0 … 匿名プロクシを制限しません。
    3. 1 … 匿名プロクシからの投稿を拒否します。
    匿名プロクシチェックはCATVやイントラネット経由の環境等プロクシ経由でなくてもプロクシとみなしてしまうことがあります。
    1. この場合は後の許可IPアドレスにその人のホストかIPアドレスを設定することで投稿を受け付けるようになります。
    2. ロリポップ等一部のサーバーではプロキシ判定が上手く行かない場合があります。
    3. この場合は後の$only_jpを2に設定することで、環境変数によるプロキシ判定を行わずにjpドメインでないホスト名をプロキシとみなします。
    ドメインネームの取得ができるサーバであることが条件です。
  5. ドメインのないIPを排除:$check_host = n;
    $check_proxyを0以外にした場合にここの値を 1 にすると、プロキシによく使われるドメインネームの取得ができないIPをプロキシ経由とみなします。
    1. 一部のドメインネームの取得ができないプロバイダまでプロキシ経由とみなすので設定には注意してください。
    2. HP領域がドメインネームの取得ができないサーバの場合は全てプロキシ経由とみなすので0のままにしてください。
  6. jpドメイン以外を排除:$only_jp = n;
    $check_proxyを0以外にした場合にここの値を 1 にすると、
    プロキシによく使われるjpドメイン以外のホストをプロキシ経由とみなします。
    1. Yahoo!BBやuu.net等jpドメインでないプロバイダまでプロキシ経由とみなすので設定には注意してください。
    2. HP領域がドメインネームの取得ができないサーバの場合は0のままにしてください。
    3. ロリポップ等一部のサーバーではプロキシ判定が上手く行かない場合があります。
    この場合はここの値を 2 に設定することで、環境変数によるプロキシ判定を行わずにjpドメインでないホスト名をプロキシとみなします。
    ドメインネームの取得ができるサーバであることが条件です。
  7. 投稿許可IP:allow_ipad = ('〜','〜');
    ここに プロクシ経由でないのに投稿できなくなる方の IP/ホスト/携帯端末情報/クッキー名を書いておくと、そのIP/ホスト/携帯端末情報/クッキーからの投稿を許可します。
    記述の形式は@check_ipadと同じです。
  8. 投稿許可クッキーID:@allow_cookie = ('〜','〜');
    ここにイタズラをしてないのにアクセス規制・プロクシ経由規制で投稿できなくなる方のIP/ホスト/携帯端末/クッキーを正確に書いておくと、そのIP/ホスト/携帯端末/クッキーからの投稿を許可します。
  9. 設定ファイル
  10. 不正アクセス防止:$check_url = "〜";
    荒らしスクリプト等の他URIからの投稿を拒否します。
    このCGIの正確な URL (http://〜) を記述します。
    Windows CE等環境によって投稿できなくなることもあります。
  11. 他サイトからの入室禁止:@allow_url = ('〜','〜');
    ここに入室を許可するURLを設定しておくと、
    設定したURLを含むURLからのみ、入室と投稿を許可します。
    他サイトからの入室とURLを直接入力しての入室は排除されます。
    @allow_url = ('許可URL1','許可URL2');というように '' の中にURLの一部を書き、 , で区切って増やします。
    ここを設定する場合は必ずこのCGIの設置URLも許可されるようにしてください。
  12. 匿名プロクシ制限:$check_proxy = n;
    匿名プロクシを使って荒らし行為が行われる場合に設定します。
    この匿名プロクシ制限と、上のIPアドレス制限でほとんどの荒らしを排除可能です。
    値の意味は以下の通りです。
    0 … 匿名プロクシを制限しません。
    1 … 匿名プロクシからの投稿を拒否します。
    
    匿名プロクシチェックはCATVやイントラネット経由の環境等
    プロクシ経由でなくてもプロクシとみなしてしまうことがあります。
    この値を2に設定するとプロバイダのIPで投稿させることができます。
    この場合はプロバイダのIPがIPアドレス制限に登録されている場合だけ排除されます。
    ただしブラウザや環境によっては投稿できなかったり、トラブルが起きる場合があります。
    この場合は後の許可IPアドレスにその人のホストかIPアドレスを設定することでJavaの生IP抜きなしで投稿を受け付けるようになります。
    なるべく訪問者の環境から判断して設定した方が良いでしょう。
  13. 公開串制限:$bbq = n;
    公開プロキシを使用していると自動的に弾かれますが、副作用があるかも知れません。
    よほどの事がなければ使用しなくても構いません。

補足

XHTML版のみの問題です。
サーバーならびにブラウザによっては[dorama.cgi]がファイルと認識されてダウンロードされてしまう問題が発生しています。
この場合は、[application/xhtml+xml]の部分を、[text/html]とするか[application/xml | text/xml]と書き換えるように、お願いします…それでも動作しない場合は記述を[text/html]にするしかありません(各キャリアに関しては全て[./dorama_t.pl]にしてください、ただしiPhoneとかゲーム機はそのままでいいです)。

推測ですが、サーバー側でまだ対処されていないのかも知れません(XHTML関連が)…

もう一つは <?xml version=\"1.0\" encoding=\"$charset_code\"?> は、ブラウザによっては互換モードに変わってしまうので、削るか # を追加してください。

サーバーによっては一部動作が異なったりします。この事に関して追記するのを忘れていました、すみません・・・

★免責事項

作者はこのスクリプトを使用した事によって発生したトラブル(データ破損等)の責任は負いません。
あらかじめご了承ください。

★利用規定

このスクリプトの利用規定はオリジナルの配付元であるCGI-StaTionでの利用規定に準じます。
さいごに…

自分で言うのも難なのですが、あまりの強力さにびっくりします。
特にしつこいイタズラ書き及び匿名投稿等に…

ですがあんまり使い過ぎないようにしてください…(^^;

なお、わからないことがある場合にいきなりメール送るのはできるだけやめてください(処理に困るので)。

それでは、あなたのホームページが楽しくなることを願ってます。


おまけ

CGIファイル[ 〜.cgi ]のアクセス権限を「700/705/755」(サーバーによって異なる)にして、
Perlパスのすぐ下に、

BEGIN { $| = 1; print "content-type: text/html,application/xhtml+xml\n\n"; open (STDERR, ">&STDOUT"); }

を挿入してアクセスすれば、エラー原因・ヒント(エラー行など)が表示されます。
ただし英語で表示されますので若干の語学力が要求されます…(^^;

記入例:

#!/usr/local/bin/perl(サーバーによって異なる)
BEGIN { $| = 1; print "content-type: text/html\n\n"; open (STDERR, ">&STDOUT"); }

content-type: text/x-hdml; charset="Shift_JIS\n\n";

(追加しても大丈夫なタグ)

<embed src="任意のパス" hidden="true" autostart="true" loop="true"></embed>
(WeB DoRaMa内でBGMを流したいときに追加してください)

<table align="center">
<tbody>
<tr><td align="center">

あらすじ

</td></tr>
<tr><td>

A行<br />
B行

</td></tr>
</tbody>
</table>

あらすじを使用したいときに追加してください、それと、A行とB行は例ですので削除してから文字を入力してください<br />
(使用例)

<table align="center">
<tbody>
<tr><td align="center">

〜(サブタイトルでも構いません)〜

</td></tr>
<tr><td>

A行<br />
B行

</td></tr>
</table>

(はっきり言ってテキトーですが… 自分なりにあらすじを考えてくだされば結構です)<br />
(二行を超える場合)

</td></tr>
</tbody>
</table>

(あらすじを使用したいときに追加してください、それと、A行とB行は例ですので削除してから文字を入力してください)<br />
(使用例)

<table align="center">
<tbody>
<tr><td align="center">

〜(サブタイトルでも構いません)〜

</td></tr>
<tr><td>

A行<br />
B行<br />
C行以降

</td></tr>
<tbody>
</table>

WeB DoRaMa P MOBILE Version 1.00.00

かくれがおか Presents.
Script written by 黒崎.

http://kakuregaoka.sakura.ne.jp/
WeB DoRaMa P version 1.31.10

Reset in Pease Presents.
Base Script written by ぴぃロッキー.

http://www2s.biglobe.ne.jp/~piroki/
WeB DoRaMa version 1.30

CGI-StaTion Presents.
Original Script written by Shigeto Nakazawa.

http://www7.big.or.jp/~jawa/
参考
NTT DoCoMo 作ろうiモードコンテンツ
KDDI au: EZfactory
MOBILE CREATION
技術情報 | イー・モバイル
WILLCOM|コンテンツを制作するなら全キャリア対応で!
流用ベース E-PAD utn Edition v1.01

Script written by Bancho(配布終了)
http://digiban.seesaa.net/
流用ベース e-PAD(ちょこっと改)
流用ベース 携帯対応YY-BOARD(改)

Script written by Tambo
http://vvv.ciao.jp/yy/
Base Script written by Kent
http://www.kent-web.com/