attach.rb
ファイル添付プラグイン(misc/plugin/attachに収録)
ページに任意のファイルを添付するためのプラグイン。同梱のattach.cgiも必要です。 有効にすると、以下のプラグインが使用可能になります。
- attach_form
- ファイル添付のためのFORMを生成するプラグイン
- attach_anchor
- 添付されているファイルへアクセスするためのアンカを出力するプラグイン
- attach_anchor_string
- 添付されているファイルへアクセスするためのアンカを、任意の文字列で出力するプラグイン
- attach_image_anchor
- 添付されている画像ファイルを展開するためのプラグイン
- attach_src
- 添付されているファイルの内容をPREで展開するプラグイン
- attach_map
- ファイルが添付されてるページの一覧と、添付されているファイルの一覧を表示するプラグイン
プラグインを有効にする方法
hiki.cgi のあるディレクトリに misc/plugin/attach/attach.cgi をコピーします。 その後、「管理」->「プラグイン選択」で attach.rb を有効にして下さい。
各プラグインの詳しい説明
attach_formプラグイン
ページにファイルを添付するためのフォームを生成するためのプラグインです。
{{attach_form}}
と書くとフォームが生成されます。
全てのページにこのフォームが欲しい場合、全てのページにこれを記述する必要があります。…という仕様にすると、ものすごく使いにくいので(^^; そのようなときにはhikiconf.rbへ以下の記述を追加してください。
@options['attach.form'] = 'edit'
この記述を追加すると、フッタのちょっと上にファイル添付フォームが自動的に出力されます。
値は'edit', 'view', 'both'の3つを指定することができます。
- edit: 更新画面にフォーム追加
- view: 表示画面にフォーム追加
- both: 更新、表示画面両方にフォーム追加
attach_anchorプラグイン
ページに添付したファイルへアクセスするためのアンカを出力するプラグインです。
{{attach_anchor(ファイル名, ページ名)}}
という形式で使用します。ページ名は省略可能です。このページに添付したhiki.pngを参照する場合、
{{attach_anchor('hiki.png')}}
と書くと、hiki.pngへアクセスするためのアンカが生成されます。
attach_anchor_stringプラグイン
ページに添付したファイルへアクセスするためのアンカを、任意の文字列で出力するプラグインです。
{{attach_anchor_string(文字列, ファイル名, ページ名)}}
という形式で使用します。ページ名は省略可能です。このページに添付した hiki.png を参照する場合、
{{attach_anchor_string('画像です','hiki.png')}}
と書くと、hiki.png へアクセスするためのアンカが「画像です」という文字列で生成されます。
attach_viewプラグイン
添付されているファイルの内容を表示するためのプラグインです。 ファイルの拡張子により画像かテキストファイルかを判別し、画像の場合には <img>タグに展開し、テキストファイルの場合にはPREで展開します。
{{attach_view(ファイル名, ページ名)}}
という形式で使用します。ページ名は省略可能です。このページに添付したhiki.pngを参照する場合、
{{attach_view('hiki.png')}}
と書くとイメージが展開されます。テキストファイルの場合、
{{attach_src('hello.rb')}}
と書くとPREで展開されます。
attach_mapプラグイン
このプラグインは、サイト上でファイルが添付されているページと添付ファイルの一覧を出力します。
{{attach_map}}
とすると、ページごとに添付されているファイルの一覧を出力します。
セキュリティ
ファイル添付機能を全ての人に開放するのはちょっと危険だなぁと考えるならば.htaccessへ
<Files attach.cgi> AuthName Hiki AuthType Basic AuthUserFile /home/hoge/.htpasswd Require user hoge </Files>
などを追加してattach.cgiの起動を制限することをお薦めします。
ファイル添付機能の脆弱性への対策
0.8.0 以降、デフォルトでは /<script\b/i にマッチするファイルを 添付できなくなりました(危険なスクリプトを含むファイルを添付できないように)。
イントラネットの中だけで使ってる、ファイル添付時に認証しているなど、 信頼できないユーザーがファイルを添付する危険がない時には、 従来通りスクリプトが含まれていても添付を受け付けるようにもできます。 その場合は、hikiconf.rb で
@options['attach.allow_script'] = true
と設定して下さい。
添付画像を直接表示する
hikiconf.rb で
# hiki.cgi から見た、添付ファイルのあるディレクトリの位置。 # 添付ファイルのあるディレクトリは Web から見える位置にないといけない。 @options['attach.cache_url'] = 'foobar'
のように設定すると、添付された画像を Hiki スクリプトを通さずに直接アクセスするようになります。このため、スピードの向上が期待できます。
ただし、不特定多数にファイル添付を許している場合など、「信頼できないファイルが添付される可能性がある」環境ではこのオプションを使ってはいけません。セキュリティーホールになります。
http://lists.sourceforge.jp/mailman/archives/hiki-dev/2005-December/001093.html
HikiFarmでattachを使う場合
http://wiki.harunaru.com/memo/?attach_on_hikifarmを参考にしてください。
Keyword(s):
References:[plugin]