ページの作成や編集にはユーザ登録が必要です。
HTML直接記述プラグイン(要:複数行プラグイン/CPAN モジュール)
- 投稿者: A_M
- カテゴリ: 新規
- 優先度: 低
- 状態: 提案
- 日時: 2007年12月05日 19時49分44秒
内容
WikiページにHTMLタグを直接記述することを目的にしたプラグインの試作版(α版)です。
- CPANのモジュール( HTML-TagFilter )を使い、危険なタグをフィルタして出力します。
動機
SourceForge のwikiでも「ブロックプロセッサ」と呼ばれるFSWikiの複数行プラグインのような実装がありますが、そこではhtmlをWikiページに直接記述する機能がありました。これに似た実装を複数行プラグインで実現出来そうでしたので、たたき台として公開。
類似プラグイン
HTML挿入プラグイン ( html_incrude )
- 安全な運用のトレードオフとして、様々な議論がなされ、以下のように落ち着いたプラグインでした。
- 別ページに記述する。
- HTML記述ページは非公開権限とする。
非公開権限とするために、標準実装の検索プラグインには、ページがヒットしないケースもあり。
パッケージ
プラグインパッケージ名のプレフィクス bp_ は、「ブロックプロセッサ」を意味します。
プラグイン・アーカイブ
- bp_html_(yyyymmdd).zip - yyyymmdd は公開年月日
- plugin/bp_html/Install.pm
- plugin/bp_html/Direct.pm
ダウンロードは更新履歴の項目からお願いします。
必要モジュール
- lib/HTML/TagFilter.pm
ダウンロードはCPANサイトからお願いします。
( CPAN HTML-TagFilter http://search.cpan.org/~wross/HTML-TagFilter/ )
インストール
以上で導入は完了です。
使い方(Wikiページでの記述方法)
TagFilter の意味でtf と命名しています。
{{tf <ELEMENT (attr)="val">〜</ELEMENT> <ELEMENT (attr)="val"> }}
管理者向け情報
- HTML要素(ELEMENT)に含まれる属性(attr)をフィルタを通り、安全であれば出力する(HTML-TagFilter のデフォルト)。
- Direct.pm 内の実装を変更することで、リスクは増しますが、自由度の高い記述を許可できます。
実装機能
幾つかのHTMLタグを直接記述できます。
- Direct.pm は、HTML-TagFilterモジュールのデフォルト状態に、class属性のみ許可を加えて実装しています。
- 必要に応じて、Direct.pm を編集・HTML-TagFilterの実装を変更してください。
- 編集されましたら、変更箇所とその用途などをご紹介くださると、多くの方が参考になると思います。
未実装機能
公開した状態ですと、大手サイトが提供するJavaScriptなタグはフィルタリングされて無効になると思います。
- HTML::TagFilter.pm を熟読の上、Direct.pm を編集・HTML-TagFilterの実装を変更してください。
- 編集されましたら、変更箇所とその用途などをご紹介くださると、多くの方が参考になると思います。
ライセンス
GPLでお願いします。
更新履歴
- bp_html_20071205.zip(817)
- 試作版(α版)としての公開です。
コメント
- おぉ、いいっスね。(笑) HTML挿入プラグイン だと、そのページ内に記載できないので辛い部分がありました。(ページを分けなければならないので面倒だった) フィルター部分がCPANモジュールっていうことは、安全性が保証されたタグ(及び要素)しか使えない、ということでしょうから装飾用HTMLタグプラグインでhtml(任意タグ出力)を有効化して使う方法より信頼度が高くて、記述方法自体もHTMLタグの形そのものなので使い勝手という面においても勝っていると思います。さらに、一般ユーザでもHTMLタグが直接指定できるっていうのはかなりの魅力ではないでしょうか? 一つ短所があるとすれば、HTML挿入プラグインと違って、制限されているタグ(や要素)(JavaScript等)が存在する、ということでしょうか? すみません、実際にはまだ使ってないですし、このコメントは全て想像上の話です。間違っていた場合はご訂正頂けると幸いです。 - あき (2007年12月14日 23時34分50秒)
- CPANモジュールについて、デフォルトの実装ではクロスサイトスクリプティングの対策に配慮した厳しい設定が標準となっているようです。お察しのとおりでForm 関連要素や属性値にJavaScriptを有するhref属性はタグごと無視されます。また終了タグが省略されるケースも確認しており、インスタンス生成時に明示しなければならないようです。タグの要素名、属性名などを細かく指定できる点で、シンプルな実装のFSWikiにも合い、且つ発展性もあるかなと感じています。 - A_M (2007年12月19日 06時54分30秒)
- [1]パッケージの項目にインストール先のパスを記述しています。
- [2]利用したいFarm毎にプラグインの設定が必要です。
bp_html_20071205.zip最終更新時間:2010年10月19日 19時12分27秒