WebDAVで拡張子によって制限したい

このエントリをはてなブックマークに追加 このエントリをdel.icio.usに追加 このエントリをLivedoor Clipに追加 このエントリをYahoo!ブックマークに追加 このエントリをFC2ブックマークに追加 このエントリをNifty Clipに追加 このエントリをPOOKMARK. Airlinesに追加 このエントリをBuzzurl(バザール)に追加 このエントリをChoixに追加 このエントリをnewsingに追加

こんばんは
最近、WebDAVなんていうものに挑戦してみたのですが、あれはどうも難しいですね。
PHPやCGIをアップロードしてダウンロードすると実行された結果がダウンロードされたり、そもそも実行出来ちゃうなんてセキュアじゃないじゃないですか。
ということで、それを制限しようと思って調べたら、CentOSならちょっと設定を変えるだけで出来ちゃうわけですね。

RemoveHandler .cgi .php
<Files ~ "\.(cgi|php)$">
	Forcetype text/plain
</Files>

Filesで設定しないでForcetypeだけでもいいのですが、MP3とかそういうデータもtext/plainになっちゃうのはなんだかなーって感じなので、こんな感じに。

でも私は、そもそもPHPとかCGIとかアップロード禁止にしちゃえば問題ないじゃん!みたいな考えをしてしまったわけです。

ま、調べてもなかなか見つからない。
というか、本来はそういう使い方をするもんじゃないんだと思います。WebDAVは。
でも、ここは意地でも拡張子ごとにファイルを制限したくなったのでちょっと頑張ってみました。
方法は簡単。指定した拡張子以外は403を出せばいいんですね。
さぁて、どうやって403を出すか。
ここまで来るには波乱万丈あったわけですが(笑)、結果的に下のような感じに。

Order deny,allow
Deny from all
<Files ~ "^$|^[^\.]*$|\.(txt|pdf|gif|jpg|png|mp3|wav|wmv|avi|lzh|zip)$">
	Allow from all
</Files>

ちなみにこの設定だとOption Indexexにしてもブラウザでは403出てしまい一覧が表示されませんが、WebDAVクライアントではOKだし、セキュアじゃね?ってことで放置します(笑)。
Filesあたりの設定ですが、まず「^$」がないとWebDAVクライアントでも一覧が習得できなくなってしまいました。次に「^[^\.]*$」がないと新規ディレクトリ作成ができませんでした。その次は許可する拡張子たちです。
こんな感じで設定すれば何とか目的を達することはできたのですが、実際の運用に使えるかどうかは全く謎です(汗)。もし実運用で使いたい場合は十分な確認の上使ったほうがいいと思います。

こんな方法あるよーとかそういう情報をお持ちの方はぜひぜひ教えてくださると、さらにセキュアなWebDAVファイル共有ができそうです。
というか、WebDAVは不特定多数でファイル共有する目的には向かないのかなーなんて。やっぱり認証やらSSLやらと一緒に、限られたユーザで使ったほうがいいのかな。

1つ星2つ星3つ星4つ星5つ星 (1 投票, 平均値/最大値: 5.00 / 5)
読み込み中 ... 読み込み中 ...

Post a Comment

あなたのメールは 絶対に 公開されたり共有されたりしません。

次の HTML タグと属性が使用できます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">

トラックバック

http://www.infinity-number.net/archives/1364/trackback