ページの作成や編集にはユーザ登録が必要です。
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 〜}}は一行でないといけません。
最終更新時間:2006年09月04日 00時13分18秒