Edit  Diff  Hiki -Front Page-  Index  Search  Changes  History  Source  Login

attach.rb

 English version may be found at https://hikiwiki.org/en/attach.rb.html.

ファイル添付プラグイン(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を参考にしてください。

Last modified:2011/04/29 17:52:11
Keyword(s):
References:[plugin]