XOOPS2ベースの各種CMSを様々な悪意ある攻撃から守るためのモジュールです。このモジュールでは、以下の攻撃を防ぎます。コメントSPAM/トラックバックSPAM等、あらゆるSPAMこれらの攻撃からあなたのXOOPS2ベースCMSを守り、ログに記録します。このモジュールはあくまで、最大公約数的な防御しか行いません。一部の3rdパーティモジュールに見られるような穴の一部は防げるかもしれませんが、すべての穴を防ぎきるものではなく、過信は禁物です。その限界は承知の上で、すべてのXOOPS2ベースCMSユーザーに対して、インストールを強くお勧めします。●利用方法インストールには、XOOPS_TRUST_PATHの設定が必要です。アーカイブのhtml内を、XOOPS_ROOT_PATH側にコピーし、アーカイブのxoops_trust_path内を、XOOPS_TRUST_PATH側にコピーします。モジュール管理からインストールできれば、正しくファイルが置けています。呼び出すようにすることが絶対必要条件です。;と、赤くなっている2行を追加して下さい。青色の部分は、最初にインストールした時のバージョンによって異なりますが、違っていても気にしなくて結構です。バージョン3から、システムモジュール由来のIPアクセス拒否は利用しなくなりました。書込許可してください。Protectorが拒否IPを自動登録する場合、ここに記述するようになります。内のファイルを編集または削除してください。2.34から、実験的に、.htaccessによるDoS防御というオプションを追加しました。これを利用する場合、XOOPS_ROOT_PATHにある.htaccessを書込可能とする必要があります。導入する際には、.htaccessファイルが書込可能である、というリスクと比較して下さい。2.1へのインストール特段違いはありません。書き換えポイントの周辺が違うので、パッチを当てた後を示しておきます。パッチは必要ありません。ご利用中のImpressCMSのpreloadフォルダにコピーしてください。preloadを提供してくれたvaughanに感謝します。Protectorに関する行を削除してください。内のファイルを全て削除します。インストールと同様に全ファイルをアップロードします。管理画面からモジュール管理に入って、Protectorモジュールをアップデートします。最後に、再度、mainfile.phpを編集し、precheckおよびpostcheckを有効にしてください。なっていることに注意が必要です。フィルタープラグインを格納することで、追加チェックや追加メッセージ・ロギングなどができるようになりました。作成や改造も簡単なはずです。このアーカイブ内にデフォルトで用意されているフィルタープラグインのうち一般的なものを紹介します。postcommon_post_deny_by_rbl.phpスパム対策用。RBLを利用してPOSTをはねます。RBLに登録されたIPからの投稿はすべてSPAMだと判定します。問い合わせが入るため、投稿時の処理がやや重くなるかもしれません。postcommon_post_deny_by_httpbl.phpスパム対策用。http:BLを利用してPOSTをはねます。;この行を書き換えます。-postcommon_post_need_multibyte.phpスパム対策用。投稿に日本語が含まれていることを要求するプラグイン。日本語が1文字も含まれていない100byte以上の文字列があったらSPAMだと判定します。-postcommon_post_htmlpurify4guest.phpゲストによるPOSTデータすべてについて、HTMLPurifierを通過させるフィルターです。ゲストにHTMLを許可している場合では有効にすることを強くお勧めします。-postcommon_register_insert_js_check.phpロボットによるユーザ登録を防ぐプラグイン。登録しようとするユーザのブラウザでJavaScriptが動作している必要があります。-bruteforce_overrun_message.phpパスワードを指定回数以上間違えた時のメッセージを指定します。いうフィルタープラグインはいずれも、メッセージを指定するタイプのフィルターです。-precommon_bwlimit_errorlog.php過負荷防止機能が働いた時に、その旨をApacheのエラーログに記録します。いうフィルタープラグインはいずれも、エラーログに記録するタイプのフィルターです。XOOPS_TRUST_PATHは、複数サイトに利用出来る仕様なので、あるフィルターをサイトによって使い分けたいケースもあるでしょう。その場合は、Protectorの一般設定に、利用したいフィルター名を記述してください。記述のないサイトでは有効化されません。Injection対策をする機能を追加しました。Injection脆弱性は無害化できる気がします。(わざと穴を空けるつもりならいくらでも手はあるので、保証はしません)これを有効にするためには、原理的にデータベースファクトリクラスにパッチを当てる必要があります。フォルダに、各コア用のパッチ済データベースファクトリクラスファイルが用意されているので、この機能を利用したい場合には、これで上書きしてください。各コアチームが積極的にこのパッチをHEADに採用してくれるのがベストだと考えています。パッチについても、なるべく採用しやすい形にしたつもりです。以下のコアの最新版は、この機能のパッチが最初から当たっています。(以上、バージョン2までの言語ファイル作成者です。バージョン3ではいったん削ってます。(アラビア語)また、このモジュール作成にあたり、様々なご指導・ご鞭撻をいただいた、zxチームの皆様、とりわけJM2さん、minahitoさんに、心より感謝いたします。XOOPS2ベースの各種CMSを様々な悪意ある攻撃から守るためのモジュールです。このモジュールでは、以下の攻撃を防ぎます。コメントSPAM/トラックバックSPAM等、あらゆるSPAMこれらの攻撃からあなたのXOOPS2ベースCMSを守り、ログに記録します。このモジュールはあくまで、最大公約数的な防御しか行いません。一部の3rdパーティモジュールに見られるような穴の一部は防げるかもしれませんが、すべての穴を防ぎきるものではなく、過信は禁物です。その限界は承知の上で、すべてのXOOPS2ベースCMSユーザーに対して、インストールを強くお勧めします。●利用方法インストールには、XOOPS_TRUST_PATHの設定が必要です。アーカイブのhtml内を、XOOPS_ROOT_PATH側にコピーし、アーカイブのxoops_trust_path内を、XOOPS_TRUST_PATH側にコピーします。モジュール管理からインストールできれば、正しくファイルが置けています。呼び出すようにすることが絶対必要条件です。;と、赤くなっている2行を追加して下さい。青色の部分は、最初にインストールした時のバージョンによって異なりますが、違っていても気にしなくて結構です。バージョン3から、システムモジュール由来のIPアクセス拒否は利用しなくなりました。書込許可してください。Protectorが拒否IPを自動登録する場合、ここに記述するようになります。内のファイルを編集または削除してください。2.34から、実験的に、.htaccessによるDoS防御というオプションを追加しました。これを利用する場合、XOOPS_ROOT_PATHにある.htaccessを書込可能とする必要があります。導入する際には、.htaccessファイルが書込可能である、というリスクと比較して下さい。2.1へのインストール特段違いはありません。書き換えポイントの周辺が違うので、パッチを当てた後を示しておきます。パッチは必要ありません。ご利用中のImpressCMSのpreloadフォルダにコピーしてください。preloadを提供してくれたvaughanに感謝します。Protectorに関する行を削除してください。内のファイルを全て削除します。インストールと同様に全ファイルをアップロードします。管理画面からモジュール管理に入って、Protectorモジュールをアップデートします。最後に、再度、mainfile.phpを編集し、precheckおよびpostcheckを有効にしてください。なっていることに注意が必要です。フィルタープラグインを格納することで、追加チェックや追加メッセージ・ロギングなどができるようになりました。作成や改造も簡単なはずです。このアーカイブ内にデフォルトで用意されているフィルタープラグインのうち一般的なものを紹介します。postcommon_post_deny_by_rbl.phpスパム対策用。RBLを利用してPOSTをはねます。RBLに登録されたIPからの投稿はすべてSPAMだと判定します。問い合わせが入るため、投稿時の処理がやや重くなるかもしれません。postcommon_post_deny_by_httpbl.phpスパム対策用。http:BLを利用してPOSTをはねます。;この行を書き換えます。-postcommon_post_need_multibyte.phpスパム対策用。投稿に日本語が含まれていることを要求するプラグイン。日本語が1文字も含まれていない100byte以上の文字列があったらSPAMだと判定します。-postcommon_post_htmlpurify4guest.phpゲストによるPOSTデータすべてについて、HTMLPurifierを通過させるフィルターです。ゲストにHTMLを許可している場合では有効にすることを強くお勧めします。-postcommon_register_insert_js_check.phpロボットによるユーザ登録を防ぐプラグイン。登録しようとするユーザのブラウザでJavaScriptが動作している必要があります。-bruteforce_overrun_message.phpパスワードを指定回数以上間違えた時のメッセージを指定します。いうフィルタープラグインはいずれも、メッセージを指定するタイプのフィルターです。-precommon_bwlimit_errorlog.php過負荷防止機能が働いた時に、その旨をApacheのエラーログに記録します。いうフィルタープラグインはいずれも、エラーログに記録するタイプのフィルターです。Injection対策をする機能を追加しました。Injection脆弱性は無害化できる気がします。(わざと穴を空けるつもりならいくらでも手はあるので、保証はしません)これを有効にするためには、原理的にデータベースファクトリクラスにパッチを当てる必要があります。フォルダに、各コア用のパッチ済データベースファクトリクラスファイルが用意されているので、この機能を利用したい場合には、これで上書きしてください。各コアチームが積極的にこのパッチをHEADに採用してくれるのがベストだと考えています。パッチについても、なるべく採用しやすい形にしたつもりです。(以上、バージョン2までの言語ファイル作成者です。バージョン3ではいったん削ってます。(アラビア語)また、このモジュール作成にあたり、様々なご指導・ご鞭撻をいただいた、zxチームの皆様、とりわけJM2さん、minahitoさんに、心より感謝いたします。===こちらのトピックをお読みくださいhttp://www.xugj.org/modules/d3forum/index.php?topic_id=1062.04-009以降、altsys必須モジュールとなりました。先にaltsysをインストールしておいてください。アーカイブ内のSmartyプラグインも忘れずにコピーしてください。html/class/smarty/plugins/function.xoopsdhtmltarea.phpこれらは、他のD3モジュールに含まれているものと同じなので、すでにコピー済なら問題ありません。1年近く、ハック版としてメンテしてきましたが、ホダ塾ディストリビューションに収録するに当たって、問題のありそうなコードをかなり大元から書き直しました。して新しくメンテすることにしました。一部で誤解があるようですが、bulletinHDにはXCL2.1でしか動かない、なんて意味はありません。他のD3モジュール同様、bulletinHDはX2で当然に動作しますし、ImpressCMSもXCL2.1も動作対象コアです。技術を応用した静的コンテンツ用モジュールです。ついての設定が必要です。(すでにこのあたりの設定がしてあれば、とても簡単にインストールできます)機能的には、TinyDの後継という位置づけですが、コード的には完全なフルスクラッチであり、TinyDとは(もちろんTinyContentとも)完全に独立しています。picoが安定版となったので、TinyDは開発終了とします。TinyDからのアップグレードパスは用意してますので、必要に応じて、適宜引っ越してください。少なくとも、picoがTinyDに機能的に劣ることはないはずです。pico1.3から、altsysが必須となりました。picoより先にaltsys-0.61以上をインストールしてください。ディレクトリ名は好きにつけてください。そのディレクトリのフルパスをmainfile.phpに記述します。場所はXOOPS_URL定義行の直後が良いでしょう。アーカイブのxoops_trust_path/modules/picoをXOOPS_TRUST_PATH/modules/にコピーします。XOOPSモジュールとしてインストールしてください。管理者画面のカテゴリー権限設定で、トップカテゴリーについての権限をこの時点で設定しておくと後々楽が出来るかも知れません。あとはTinyDの操作を知っていれば、そう難しいことはないと思います。カテゴリーやコンテンツを追加していくだけです。d3forumを一緒にインストールすると幸せになれるかもしれません。(というか、d3forumがないとコメント機能は利用できません)NOTICE:このモジュールは、TinyDと違い、モジュールキャッシュ非推奨です。本文キャッシュ機能があるので十分に速いはずです。(0.20a)バグ報告を歓迎します。D3モジュールなので、自由なdirnameでの複製と簡単なバージョン管理は当たり前●使い方(事前準備)altsys-0.55以上をインストールしておいてください。altsysのバージョンが低くても正常に動作しません。0.55以上をインストールしてください。common/libが入っていなかったらXOOPS_ROOT_PATH下にコピーしておいてください。http://xoops.peak.ne.jp/md/mydownloads/singlefile.php?lid=104(ファイルアップロードとインストール)普通のD3モジュールとしてインストールします。モジュール管理でインストールする前に、Smartyプラグイン2つがちゃんとコピーされているか確認してください。ディレクトリを作り、書込を許可します。(まだ作っていない場合)あとは、パイプ管理からパイプを追加していくだけです。パイプ作成に慣れない内は、ウイザードを使うのが良いでしょう。ウイザードが構成したパイプを編集しているうちに、ジョイントの構成にも慣れるでしょう。非同期パイプ一覧を表示するには、ブロックアクセス権限の他に、モジュールアクセス権限も必要です。(Sitemaps)http://www.sitemaps.org/ずいぶん前に実装だけしながらドキュメントで何も言及していなかった機能です。同じ階層にコピーしてください。いうリンクがありますので、それをそのままコピー&ペーストするのも良いでしょう。以前メンテナンスしていたsitemapモジュールと混同されそうですが、そのモジュールとは何の関係もありません。d3pipesだけあれば機能します。(sf.netに対応。「piCal」●重要な通知piCalは設計の古いモジュールであり、どこかにXSSがあっても不思議はありません。Anti-XSS」が有効でないと、一切動作しないように仕様変更しました。この仕様変更が痛いようなら、piCalのアップデートやインストールをしないでください。Anti-XSS」は、最新のProtectorをインストールすれば、自動的に有効になっているはずですが、古いバージョンからのアップデートだと、OFFのままかもしれません。0.93以上をインストール/アップデートする際には、必ずその機能がONになっていることを確認してください。●piCalとはPHP+MySQL用のクラスです。以前に仕事で作ったカレンダー機能をベースとしています。汎用の「クラス」として作りましたが、かなりXOOPSに特化した機能も充実してきたと自負しています。読み方は「ピーカル」ではなく「パイカル」です。後で調べてみたら、Python用のiCalendarライブラリも、picalという名前のようです。こちらこそ「パイカル」でしょうから、読み方だけでも変えようか、などと考えたりしてます。(ヨタ話にして失礼)●開発の背景XOOPSそのものはかなり前から興味を持っていたのですが、2003年の4月頃、たまたまいくつかの案件があって、ようやく直接いじる機会にめぐまれました。ところが、それらの案件で必要になる、カレンダーもしくはスケジューラ機能が公式モジュールにはありません。Partyモジュールを探すことになるのですが、当時唯一みつかったeCalは、私の利用方法にはそぐいませんでした。最初はeCalをベースに改変しようかと思ったのですが、元がフランス語であることもあって、あまりにもソースが読みづらく、これくらいなら0から作ってしまえ、と一念発起して、「車輪の再発明」することになりました。;;実際、カレンダー関係のPHPクラスなど、おそらくゴロゴロしていると思うのですが、暦というのは、意外とローカルな仕様が多くて、ある国の暦をベースとしたカレンダークラスを別の国向けにローカライズするのは大変です。Salazarさん達の熱心なXOOPS伝道者にすすめられたこともあり、0.50でついに国際化しました。元々が日本専用仕様で作っていただけに、国際化は非常に困難を極めましたが、今はそれなりのものが出来たと思っています。今後も、「XOOPSにはpiCalがある」と言わせるだけのモジュールに育てていこうと思っています。●利用方法(piCal新規導入の方)XOOPS2で使うのは簡単なはずです。以下に展開して下さい。パーミッションを変更するようなフォルダはありません。その後、モジュール管理でインストールすればOKです。ブロックやモジュールのアクセス権限は、従来通り、システムのグループ管理でもできますが、piCalにはmyblocksadminがありますので、piCal内で行う方が便利なはずです。「一般設定」のオプションもかなり多めですが、それほど難しいものはないと思います。以下に、比較的、理解しづらい「権限」について書いておきます。可・承認不要」を選びます。そもそも登録できなくするためには、「登録不可」を選びます。「各グループの権限設定」ページで個別に指定して下さい。本人および管理者が編集できます。まですが、未承認スケジュールは自動的に承認済となります。基本的には、「一般ユーザの権限」と同じです。未承認状態のスケジュールは、管理者にしか見えません。仕様で作ってあります。以下のディレクトリ名は自由に決められます。したルールがあるので、それだけは守らなくてはいけません。いう名前にしてください。数字が一切含まれないディレクトリ名も、1つだけ存在可能です。して置けば、piCal番号0のモジュールのできあがり。しても良いですが、これはpiCal番号2のモジュールとして扱われます。3つだけ用意してあります。テンプレートとsqlファイルを用意しさえすれば、いくつでも可能です。piCal番号が同一のモジュールは2つ同時には存在できませんので、その点だけ注意して下さい。上書きアップロードします。piCalのモジュールメンテナンス画面にアクセスし、指示に従うという手順が必要です。落として、テーブルを0.40形式にしてから、再度、最新のpiCalへのアップグレード手順を踏んで下さい。piCalはその性格上、タイムゾーンの設定を正確にしないといけません。