ZeroCH::Document::Plugin - img0ch(4.x)におけるプラグインの解説
4.xでは新しくプラグインシステムが導入されました。 これによって掲示板の動作を柔軟に変更できるようになります。 以下は現在標準でバンドルされているプラグインの説明をします。
プラグインの更新は「プラグイン」->「プラグイン一覧を更新する」をクリックすることで プラグインの一覧が更新されます。その際、新たに発見したプラグインが データベースに追加され、存在しないプラグインは自動的に削除されます。
プラグインの有効無効はプラグイン名の右にあるチェックボックスにチェックを入れることで そのプラグインを有効にすることが出来ます。逆にチェックボックスの チェックを外すことによってそのプラグインを無効にすることが出来ます。 どちらの場合でも更新を反映させるには 「チェックされたプラグインを有効にする」をクリックしてください。
登録されているアイコンの情報を読み込み、index.htcにおいてアイコンプラグインが有効であるかを1または0で示す <TMPL_VAR NAME="Icon">と登録されているアイコンをリストコンテキストとして利用する <TMPL_LOOP NAME="Icons">タグを利用可能にします。
このプラグインはその他"Img0ch::BBS::Presave::Icon"、"Img0ch::BBS::Rewrite::Icon"、 "Img0ch::Read::Init::Icon"、"Img0ch::Read::Rewrite::Icon"を有効にする必要があります。
アイコン登録の設定は"Img0ch::BBS::Presave::Icon"で行ってください。
特定のスレッドごとに独自の設定を行います。 Img0ch::BBS::*::Stashの設定はここで行ってください。
「基本設定変更」、「head.txt編集」、「meta.txt編集、「foot.txt編集」の権限を持つグループに 所属するユーザーがこのプラグインの設定変更を行うことが出来ます。
ここでは以下の機能を利用することが出来ます。
スレッドを上げようとしても強制的にsageにする
スレッドストップ表記なしでスレッドストップ扱いにする
キャップによる書き込み以外みんな名無しにする
が利用できます。
NGワードによる投稿制限を行うことが出来ます。 日本語及び正規表現に対応しています。 設定は「各種編集」->「NGワード規制」から行ってください。
強力なDNSBLであるBBQ(http://info.2ch.net/wiki/?BBQ)による投稿制限を行います。 ほとんどのPROXY投稿を拒否することが出来ます。 DSBLのリストに載っているホストはBBQでも弾くようになっていますので、このプラグインを 有効にした場合DSBLプラグインを有効にする必要はありません。
BBQで焼かれている(規制されている)かどうかを確認するには風呂敷確認君を使って 調べてみる必要があります。(http://sv2ch.baila6.jp/chk_proxy.cgi)
過去に広告行為を行ったホストを対象にした規制を行いたい場合は "Img0ch::BBS::Filter::BBX"を利用してください。
強力なDNSBLであるRock54(ここではBBX:http://info.2ch.net/wiki/?Rock54)による投稿制限を行います。 過去に広告行為あるいはマルチポストを行ってきたホストを規制することが出来ます。
Rock54(BBX)で規制されているかどうかを確認するには風呂敷確認君を使って 調べてみる必要があります。(http://sv2ch.baila6.jp/chk_proxy.cgi)
PROXYを対象にした規制を行いたい場合は"Img0ch::BBS::Filter::BBQ"を利用してください。
海外のDNSBLであるDSBL(http://dsbl.org/main)による投稿制限を行います。 BBQほど強くはありませんが、海外におけるPROXYの制限を行うことが出来ます。
Vip_quality.plのスレッド作成時におけるラッパーです。
以下は設置方法です。この設置は初回時のみ行います。
http://www.nullpo.org/pablic_html/vip_quality/vip_quality.htmlで入手可能です。
ライブラリを解凍したらその中のVip_quality.plを/test/img0ch/4.0に設置します。 そのディレクトリ以外に配置すると読み込みエラーが発生します。
setting/vip_qualityディレクトリはどこに設置しても基本的に問題は発生しませんが、 なるべくサイトの公開パスより上(すなわちサイトにアクセスする人がクラックでもしない限り アクセス出来ないパス)に置いてください。
313行目と318行目にあるパス情報を書き換えます。 $setting{'$file_path'}にはsetting/vip_qualityディレクトリまでのパスを、 $setting{'$bbs_path'}にはzeroch-config.cgiのBBSPathにスラッシュを加えた値 (CGI環境であれば「../」で動作するはず)に書き換えてください。
この一連の作業によりVIPライブラリのプラグインが動作します。 詳しい情報はVip_quality.plのコメント欄を参照してください。
携帯用のDNSBLであるBBM(http://info.2ch.net/wiki/?BBM)による投稿制限を行います。 携帯による広告または荒らしが出てきた場合有効かもしれません。
BBMで規制されているかどうかを確認するには携帯規制確認君を使って調べてみる必要があります。 (http://sv2ch.baila6.jp/chk_mobile.cgi)
IPアドレスによる投稿制限を行うことが出来ます。 設定は「各種編集」->「アクセス規制」から行ってください。
スレッド毎に正規表現でホストの投稿制限を行うことが出来ます。
「アクセス制限設定」の権限を持つグループに所属するユーザーがこのプラグインの設定変更を行うことが出来ます。
英数字(ASCIIやlatin-1)のみの本文が発見された場合エラーを出力するプラグインです。
このプラグインを利用するには別途Encodeモジュールが必要(perlのバージョンが5.8.xなら 標準でインストールされている)です。
実際にアイコン投稿を行い、投稿した情報をコメントタグとして本文に追記するプラグインです。 このプラグインの設定においてアイコン登録を行うことが出来ます。
「基本設定変更」の権限を持つグループに所属するユーザーがこのプラグインの設定変更を行うことが出来ます。
このプラグインはその他"Img0ch::BBS::Presave::Icon"、"Img0ch::BBS::Rewrite::Icon"、 "Img0ch::Read::Init::Icon"、"Img0ch::Read::Rewrite::Icon"を有効にする必要があります。
Vip_quality.plのレス投稿時におけるラッパーです。
設置方法に関しては"Img0ch::BBS::Filter::VIP"を参照。
指定されたタグの入力を許可します。終了していないタグの補完も行います。
設定からタグの許可設定の変更を行うことが出来ます。最初から許可しているタグは <b>、<font>、<i>、<s>、<u>です。 <font>タグに関してはcolorとsizeの属性が利用可能です。 それ以外の許可タグの属性の利用は出来ません。
「基本設定変更」、「head.txt編集」、「meta.txt編集、「foot.txt編集」の権限を持つグループに 所属するユーザーがこのプラグインの設定変更を行うことが出来ます。
ただし、設定を間違える(JavaScriptを呼び出せすタグの属性、例えば「onClick」とか 「onSubmit」を有効にする)とXSSの危険性を生み出しますので絶対に行わないでください。
以下は本文に渡される文章(HTML実態参照済み)とその置換結果です。
<html>
<head>
<!--nobanner(<!--コメントは削除されません。-->)-->
<title>HTML test</title>
<meta http-equiv="Content-Type" content="text/html">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script type="text/javascript"><!--
function helloWorld() {
alert('Hello World!');
}
//-->
</script>
</head>
<body>
<br>
<no such="SUCH" tag="TAG" has="HAS" been="BEEN" found="FOUND">
<nested <!--comment="<!--COMMENT" <!--="<!--" komment="komment" --="--"> TAG--> src="test.cgi">
<a href="mailto:root\@localhost.net">mail</a>
<a href="http://localhost" onclick="alert('XSS!')">test</a>
<b title="BOLD">bold test</b><hr style="color:red">
<i title="ITALIC">italic test</i>
<S TITLE="EMP">EMP test</s>
<font color="red" size="7" face="Arial" onclick="alert('XSS')">big red color text</font>
<FonT COLOR=RED SIZE=3>test</foNT>
<span onmouseover="alert('mouse in')" onmouseout="alert('mouse out')">
</span>
<blink style="color:red">enlightenment red</blink>
<marquee id="marquee_test">marquee</marquee>
<u>underline test</u>
<タグ></タグ>
<タグ>test</タグ>
<タグ />
<タグ>
<タグ>test
<タグ />
<img src="./image.png" alt="test" height="100" width="100">
</body>
</html>
<b><s><jp><test></タグ><タグ>
設定を何も変更せずにこのプラグインを用いた置換結果です。 <b>、<font>、<i>、<s>、<u>が有効になっていることが分かります。 また、タグ名が大文字になっている箇所がある場合小文字に置換され、 属性にクオートを括っていなくても自動的にクオートが補完されます。 さらに、有効なタグであっても無効な属性は削除されます。 無効なタグはHTML実態参照のままです。
<html>
<head>
<!--nobanner(<!--コメントは削除されません。-->)-->
<title>HTML test</title>
<meta http-equiv="Content-Type" content="text/html">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script type="text/javascript"><!--
function helloWorld() {
alert('Hello World!');
}
//-->
</script>
</head>
<body>
<br>
<no such="SUCH" tag="TAG" has="HAS" been="BEEN" found="FOUND">
<nested <!--comment="<!--COMMENT" <!--="<!--" komment="komment" --="--"> TAG--> src="test.cgi">
<a href="mailto:root\@localhost.net">mail</a>
<a href="http://localhost" onclick="alert('XSS!')">test</a>
<b>bold test</b><hr style="color:red">
<i>italic test</i>
<s>EMP test</s>
<font color="red" size="7">big red color text</font>
<font color="RED" size="3">test</font>
<span onmouseover="alert('mouse in')" onmouseout="alert('mouse out')">
</span>
<blink style="color:red">enlightenment red</blink>
<marquee id="marquee_test">marquee</marquee>
<u>underline test</u>
<タグ></タグ>
<タグ>test</タグ>
<タグ />
<タグ>
<タグ>test
<タグ />
<img src="./image.png" alt="test" height="100" width="100">
</body>
</html>
<b><s><jp><test></タグ><タグ></s></b>
アップロードの処理を行えるようにします。 アップロードを有効にするにはこのプラグインを有効にする必要があります。
アップロードされたファイルをデータベースに登録します。
アップロードされた画像ファイルから縮小サムネイルを作成します。 作成対象はjpg、png、gifの画像のみです。
アップロードされたファイルをClamAVを使ってスキャンし、 ウィルスが入っていないかを確認します。 このプラグインを有効にする際必ず設定を行う必要があります。
「Administrators」のグループに所属するユーザーがこのプラグインの設定変更を行うことが出来ます。
このプラグインを利用するには別途ClamAV::Clientをインストールする必要があります。
拡張子がzipのファイルを調べ,暗号化されているzipが発見されれば そのzipファイルを削除してエラーを出力します。
ファイルの拡張子と内容をMIME型から比較し、一致しなければそのファイルを削除してエラーを出力します。 ファイルの内容によっては誤判定を起こすことがあるかもしれません。
RSSver1.0(index.rdf固定)の作成、配信を行います。 設定で配信するレス数を設定することが出来ます。
「基本設定変更」の権限を持つグループに所属するユーザーがこのプラグインの設定変更を行うことが出来ます。
このプラグインを有効にする際はmeta.txtに以下のタグを貼り付ける必要があるでしょう。
<link rel="alternate" title="(任意の名前を入れる)" href="./index.rdf" type="application/rss+xml">
http、https、ftpから始まる文字列を自動的にリンクとして変換します。 また、掲示板設定でクッションが指定されている場合、クッションが利用されます。
>>1-3や>>1等の文字列を自動的にリンクにして変換します。
アイコン情報が格納されたコメントタグをimgタグに置換して画像表示を行います。
このプラグインはその他"Img0ch::BBS::Presave::Icon"、"Img0ch::BBS::Rewrite::Icon"、 "Img0ch::Read::Init::Icon"、"Img0ch::Read::Rewrite::Icon"を有効にする必要があります。
アイコン登録の設定は"Img0ch::BBS::Presave::Icon"で行ってください。
アップロードされた画像ファイルのリンクを自動的にimgタグに変換します。 変換対象はjpg、png、gifの画像のみです。
index.htmlにおけるレスの行数がBBS_LINE_NUMBERを超える本文を削除し、read.cgiへのリンクを 入れるプラグインです。
<br>タグを<br />タグに変換し、XHTMLに対応させるようにします。 snowmanテンプレートを利用するとき、XHTMLに準拠させるためにはこのプラグインを 有効にする必要があります。
"Img0ch::BBS::Rewrite::AutoLink"に基本的に同じですが、 掲示板設定でクッションが指定されてもクッションは利用されず、 リンクアドレスの代わりにドメイン名が表記されます。
zeroch-config.cgiにEnableIDNを1にし、Net::LibIDNをインストールすることにより 国際ドメイン名(IDN)をリンク対象に追加され、リンクすることが出来るようになります。
改行数を調べて特定行(BBS_MB_LINE_NUMBER)以上の文章を省略して表示します。
アップロードされたファイルのリンクを別の表記に置換し、 画像ファイルをhttp://pic.toやhttp://fileseek.netにリンクを張ります。
hkrn <hikarincl2@yahoo.co.jp>
Copyright(C) 2001-2006 0ch http://0ch.mine.nu
Copyright(C) 2004-2006 img0ch by hkrn http://hikarin.jp