WebDAVで拡張子によって制限したいの続きっぽいものです。
前回はブラウザでIndexが403になるという微妙な感じ(セキュアとは言ったものの 笑)だったので、いろいろやってみました。
実はウェブブラウザで見ても、WebDAVクライアントで見ても、ファイル一覧を取得するときに403を大量に吐いている(DirectoryIndexの数だけ)ことが分かりました。
と、言うことは・・・?
DirectoryIndexの設定をクリアすればいいのかも・・・。
DirectoryIndex None
図星(笑)。見事Indexが表示され、エラーも出ていません。
で、その後いろいろいじって最終的にこんな感じの設定に。
DirectoryIndex None Order deny,allow Deny from all <Files ~ "^[A-Za-z0-9_\-]*$|^[A-Za-z0-9_\-\.]+\.(txt|pdf|gif|jpg|png|mp3|wav|wmv|avi|lzh|zip)$"> Allow from all </Files>
英数字と一部の記号のファイルしかアップロードできないようにしています。
ただ、ファイルとディレクトリはファイル名的(?)に同じ扱いなようで、拡張子とかそこら辺も同じです。うまく説明できないのでお察し下さい(笑)。
あと、標準だとHEADER.htmlとかREADME.htmlとかあげられるとアレなので、HeaderNameとReadmeNameを使うとか、rootでもともと作っておくとかで防ぎましょう。
AllowOverrideもNoneにしておくのが無難かなーと。
最後に。WebDAVはやっぱり公開して使うものではないなと(笑)。しっかりダイジェスト認証とかSSLとか一緒に使うのが無難です。(もしくは非公開なURLとか 笑)
適当なことしていてサーバに侵入されたら・・・。怖いですねー。