トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-plugin/312

ページの作成や編集にはユーザ登録が必要です。

Formを表示して外部サービス(cgiなど)を起動するプラグインです。

  • 投稿者: やじるし
  • カテゴリ: 新規
  • 優先度: 低
  • 状態: 提案
  • 日時: 2006年09月03日 07時01分09秒

 内容

Formを表示して外部サービス(cgiなど)を起動するプラグインです。

 版数

Ver1.0です。

 動作確認したFreeStyleWikiの版数

FreeStyleWiki3.6.2で動作確認しました。

 ライセンス

GPLです。

 提供するアーカイブ

アーカイブファイル

form_V1.0.zip(651)

アーカイブの内容

Form.pm
プラグインの実体です。
FormPluginTest.wiki
Fprmプラグインのサンプルwikiファイル(使用例その1)です。
FormPluginTestGoogle.wiki
Fprmプラグインのサンプルwikiファイル(使用例その2)です。
FormPluginTestGoogleErrorImage.jpg
FormPluginTestGoogle.wiki使用例画像です。
FormPluginTestGoogleImage.jpg
FormPluginTestGoogle.wiki使用例画像です。
Install.pm
プラグインの実体(インストール)です。
README.txt
このファイルです。

 設置方法

一般的なプラグインの設置方法と同じです。

アーカイブを解凍してできるformディレクトリをプラグインディレクトリ“plugin/”の下に置いてください。

サンプルwikiファイルを利用したい時は、“FormPluginTest.wiki””FormPluginTestGoogle.wiki”をデータディレクトリ“data/の下に置いてください。

 使い方

サンプル

同梱したFormPluginTest.wiki、FormPluginTestGoogle.wikiを参照してください。

サンプルwikiをfswikiを使って表示する為には、ページを“凍結”してください。(後述するセキュリティー対策)

プラグインの呼び出し

FORMを設置したい箇所に次の書式で記述してください。

{{form 外部サービス,(オプション),コントロール}}

外部サービス

FORMから呼ばれる外部サービス(cgi等)のURIをhttp://から記述します。同一サーバのサービスでもhttp://が必要です。

本プラグインは外部サービス自体の設置(登録、インストール)は関知しません。既に動作しているものとします。サンプルではgoogle、namaze.orgなどのサービスを借用して検証しています。

オプション

小文字で記述します。

オプションは次のものがあります。複数をオプションを同時に指定する場合には“空白文字”で区切ってください。

e
コントロール中のタグ<>のチェックをしません。無指定(ディフォルト)ではセキュリティの観点からコントロール中に<>があるとタグであると判断してエラーにします。
g
method="GET"になります。無指定(ディフォルト)ではPOSTになります。
s
スタイルシートを設定します。
b
結果を新しいウインドウで開くように出来ます。
t
結果をウインドウ全体で開くように出来ます。
name="フォーム名"
ディフォルトはFORMになります。
enctype="エンコード形式"
ディフォルトは出力しません。
accept-charaset="文字コード"
ディフォルトは出力しません。

コントロール

大文字で記述します。

出力したいFORMをhtml風な表記で記述します。一部にオリジナルの表記があります。

INPUT、SELECT、OPTION、TEXTAREAなど要素となるものを“空白文字”を区切りとして列挙します。

SELECT、TEXTAREAの終わりである</SELECT></TEXTAREA>の代わりに、_SELECT、_TEXTAREAと記述します。

FORMのコントロール要素でない表示の為に、Pを使います。P=文字列 or P="文字列"の書式で記述してください。eオプションが指定されている時のみ、P=<文字列>の書式が使えます。

OPTIONの表示やTEXTAREAのディフォルト表示にはPを使用します。

空白文字をコントロールの区切りとして認識します。空白文字を記述したい場合には"(ダブルコーテーション)で括ってください。

"+INPUT"、"+SELECT"、"+TEXTAREA"、"+P"とするとそれぞれの直前で改行します。

一部コントロールは省略記述できます。
正規 省略
ACCEPT-CHARSET= AC=
CHECKED CD
INPUT I
+INPUT +I
OPTION O
MAXLENGTH ML=
NAME N=
SELECTED SD
SELECT S
+SELECT +S
_SELECT _S
SIZE SI=
TYPE T=
TEXTAREA TA
+TEXTAREA +TA
_TEXTAREA _TA
VALUE V=

 セキュリティ上の注意

FORMとセキュリティ

FORMによる外部サービスの起動はセキュリティ上、危険です。たとえば、貴方が本プラグインを使用して

貴方が設置したFORM→→貴方が設置したCGI

とした時に、悪意ある第三者(ユーザ)がwikiページを書き換えてしまったらどうしましょう?

貴方が設置したFORM→→悪意あるCGI→→貴方が設置したCGI
             ↓
           個人情報漏洩

データが盗み見られたり、悪用されたりする危険があります。

だれでも参加できる(書き換えられる)wikiの最大の利点は最大の欠点になります。普通のページにも書き換えのリスクはありますが、FORMは利用者のデータが入れられると云う面で、よりセキュリティに敏感であるべきです。

本プラグインでの対策

本プラグインはセキュリティに配慮して、“凍結”されているページでしか動作しない(FORMを出力しない)ようになっています。“未凍結”のページはエラーメッセージを出力します。

“凍結”されたページのイメージ:

“未凍結”のページのイメージ:

“凍結”されているページの編集は管理者しか行えません。悪意ある第三者(ユーザ)が勝手にFORMを書き換える事が出来ません。また、新規のページを“凍結”する事ができるのも管理者のみです。悪意ある第三者(ユーザ)が勝手に変なFORMを追加する事は出来ません。(ページは作れるけれど“凍結”できないので、FORMとして動作しない)

管理者のIDとパスワードの管理には注意してください。

 ページ凍結について

はじめに

本プラグインは“凍結”されたページでしか動作しません。よって一般ユーザがページを編集したり、新規ページを追加したり出来ません。これではwikiの利点が十分に生かせません。誰にでも編集できると云うwikiの利点を生かしつつ、本プラグインを活用する為に、次の利用法を提案します。

Header、Footer、MenuなどにFORMを設置する。

一般にHeader、Footer、Menuの内容はそう頻繁に変わるものではありません。管理者が管理しても運用上問題となるケースはまれです。これらのページにFORMを設置して“凍結”してしまえば、ページの本文に影響を与える事はありません。検索FORM、連絡FORMなどはこの方式で運用出来ると思います。

FORM専用のページを作り、includeプラグインで取り込む。

FORM(と必要最小限の記述)のみのページを作成し、“凍結”します。このページをincludeプラグインで取り込んでください。FORMの記述は“凍結”されたページにあるので、変更などイタズラされる事はありません。取り込んでいるページ自体は“凍結”する必要はないので、自由にアクセス権を設定できます。

サンプルの『【No.6】スタイルシート使用例』がincludeプラグインの使用例になっています。

 注意

{{form 〜}}を記述したのにページに何も(エラーすらも)表示されない場合には、{{form 〜}}の途中に改行が含まれいる可能性があります。プラグインなので{{form 〜}}は一行でないといけません。

 コメント

お名前: コメント:
FormPluginTestGoogleErrorImage.jpg FormPluginTestGoogleImage.jpg form_V1.0.zip

最終更新時間:2006年09月04日 00時13分18秒