| <?xml version="1.0" encoding="UTF-8" ?> |
| <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> |
| <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> |
| <!-- English Revision: 1628084:1915685 (outdated) --> |
| |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <modulesynopsis metafile="mod_dav.xml.meta"> |
| |
| <name>mod_dav</name> |
| <description>分散オーサリングとバージョン管理 |
| (<a href="http://www.webdav.org/">WebDAV</a>) 機能</description> |
| <status>Extension</status> |
| <sourcefile>mod_dav.c</sourcefile> |
| <identifier>dav_module</identifier> |
| |
| <summary> |
| <p>このモジュールはクラス 1 とクラス 2 の |
| <a href="http://www.webdav.org">WebDAV</a> |
| ('ウェブベースの分散オーサリングとバージョン管理') |
| 機能を Apache に提供します。 |
| この HTTP プロトコルの拡張により、リモートのウェブサーバ上にある |
| リソースやコレクションを |
| 作成、移動、複製、削除できるようになります。</p> |
| </summary> |
| <seealso><directive module="mod_dav_fs">DavLockDB</directive></seealso> |
| <seealso><directive module="core">LimitXMLRequestBody</directive></seealso> |
| <seealso><a href="http://www.webdav.org">WebDAV Resources</a></seealso> |
| |
| <section id="example"><title>Enabling WebDAV</title> |
| <p>mod_dav を有効にするには、<code>httpd.conf</code> |
| ファイル中のコンテナに次を加えます:</p> |
| |
| <highlight language="config">Dav On</highlight> |
| |
| <p>これは DAV ファイルシステムプロバイダを有効にします。DAV |
| ファイルシステムプロバイダは <module>mod_dav_fs</module> |
| モジュールで実装されています。ですから、このモジュールはコンパイル時に |
| サーバに組み込まれているか、あるいは |
| <directive module="mod_so">LoadModule</directive> |
| を使用して実行時にロードされている必要があります。</p> |
| |
| <p>さらに、DAV ロックデータベースの場所が |
| <directive module="mod_dav_fs">DavLockDB</directive> ディレクティブを使って |
| <code>httd.conf</code> ファイルのグローバルセクションに指定されている |
| 必要があります。</p> |
| |
| <highlight language="config"> |
| DavLockDB /usr/local/apache2/var/DavLock |
| </highlight> |
| |
| <p>ロックデータベースファイルのあるディレクトリは Apache が実行されている |
| <directive module="mod_unixd">User</directive> と <directive |
| module="mod_unixd" >Group</directive> に書き込み権限がある必要があります。</p> |
| |
| <p><directive module="core" type="section">Limit</directive> |
| 節を <directive module="core" type="section">Location</directive> |
| ディレクティブ内部に追加して、DAV が有効な場所への |
| アクセスを制限することもできます。DAV クライアントが |
| 一度のリクエストで送信できる最大バイト数を指定したいときは、 |
| <directive module="core">LimitXMLRequestBody</directive> |
| ディレクティブを使用する必要があります。「通常の」 |
| <directive module="core">LimitRequestBody</directive> |
| ディレクティブは DAV リクエストに対しては効力を持ちません。</p> |
| |
| <example><title>完全な例</title> |
| <highlight language="config"> |
| DavLockDB /usr/local/apache2/var/DavLock |
| |
| <Directory /usr/local/apache2/htdocs/foo> |
| Require all granted |
| Dav On |
| |
| AuthType Basic |
| AuthName DAV |
| AuthUserFile user.passwd |
| |
| <LimitExcept GET POST OPTIONS> |
| Require user admin |
| </LimitExcept> |
| </Directory> |
| </highlight> |
| </example> |
| |
| </section> |
| |
| <section id="security"><title>セキュリティの問題</title> |
| |
| <p>DAV のアクセスメソッドは遠隔クライアントがサーバのファイルを |
| 操作することを可能にしますので、 <module>mod_dav</module> を使用する |
| 前に、サーバが安全であることを特に注意して確認しなければなりません。</p> |
| |
| <p>サーバ上の DAV が使用可能になっている場所はすべて認証で保護してください。 |
| HTTP 基本認証の使用は推奨できません。少なくとも |
| <module>mod_auth_digest</module> モジュールで提供される HTTP |
| ダイジェスト認証を用いるべきです。WebDAV クライアントのほとんどは |
| この認証方法に対応しています。代わりに、<a href="../ssl/">SSL</a> が |
| 有効なコネクションを通した基本認証を使うこともできます。</p> |
| |
| <p><module>mod_dav</module> がファイルを操作できるようにするためには、 |
| 管理下のディレクトリとファイルとに Apache が実行されている <directive |
| module="mod_unixd">User</directive> と <directive |
| module="mod_unixd">Group</directive> で書き込み可能である必要があります。 |
| 新しく作成されるファイルもこの <directive module="mod_unixd">User</directive> |
| と <directive module="mod_unixd">Group</directive> に所有される |
| ことになります。この理由から、そのアカウントへのアクセスを制御することは |
| 重要です。DAV リポジトリは Apache 専用のものだとみなされています。 |
| Apache 以外の方法でファイルを修正すること (例えば FTP やファイルシステム |
| 用のツールなどを使って) は許可されていません。</p> |
| |
| <p><module>mod_dav</module> はいろいろな種類のサービス拒否攻撃にさらされる |
| かもしれません。<directive |
| module="core">LimitXMLRequestBody</directive> ディレクティブを使うと |
| 大きな DAV リクエストを解析するときに消費されるメモリの量を制限することが |
| できます。<directive |
| module="mod_dav">DavDepthInfinity</directive> ディレクティブは |
| <code>PROPFIND</code> リクエストが巨大リポジトリで大量のメモリを消費するのを |
| 防ぐことができます。他のサービス拒否攻撃には単純に使用可能なディスク領域を |
| 多くの大きなファイルで埋めてしまうんものがあります。これを直接防ぐ方法は |
| Apache にはありませんので、信用できないユーザに DAV アクセスを提供するのは |
| 避けた方が良いでしょう。</p> |
| </section> |
| |
| <section id="complex"><title>複雑な設定</title> |
| |
| <p>よくある要求に、<module>mod_dav</module> を使って動的なファイル |
| (PHP スクリプト、CGI スクリプトなど) を操作したいというものがあります。 |
| これの実現は、<code>GET</code> リクエストはスクリプトの内容をダウンロードさせる |
| 代わりに、スクリプトを常に実行させてしまうので難しくなっています。 |
| これを回避する方法には、二つの違う URL を同じコンテンツにマップし、 |
| 一つはスクリプトを実行させ、もう一つはダウンロードさせたり、DAV から |
| 操作されたりするように設定するというものがあります。</p> |
| |
| <highlight language="config"> |
| Alias /phparea /home/gstein/php_files |
| Alias /php-source /home/gstein/php_files |
| <Location /php-source> |
| Dav On |
| ForceType text/plain |
| </Location> |
| </highlight> |
| |
| <p>この設定により、<code>http://example.com/phparea</code> を PHP スクリプトの |
| 出力をアクセスするために使うことができ、 |
| <code>http://example.com/php-source</code> を DAV クライアントによる |
| が操作のために使うことができます。</p> |
| </section> |
| |
| <directivesynopsis> |
| <name>Dav</name> |
| <description>WebDAV HTTP メソッドを有効にします</description> |
| <syntax>Dav On|Off|<var>provider-name</var></syntax> |
| <default>Dav Off</default> |
| <contextlist><context>directory</context></contextlist> |
| |
| <usage> |
| <p>与えられたコンテナで WebDAV HTTP メソッドが使えるようにするには |
| 次のようにします。</p> |
| |
| <highlight language="config"> |
| <Location /foo> |
| Dav On |
| </Location> |
| </highlight> |
| |
| <p><code>On</code> という指定は実際には <module>mod_dav_fs</module> |
| で提供されているデフォルトのプロバイダ、<code>filesystem</code> |
| へのエイリアスになっています。一度あるロケーションで DAV |
| を有効にした後は、そのサブロケーションで<em>無効化することはできない</em> |
| ということに注意してください。完全な設定例は<a |
| href="#example">上記のセクション</a> をご覧下さい。</p> |
| |
| <note type="warning"> |
| サーバのセキュリティが確保できるまで WebDAV を有効にしないでください。 |
| そうしなければ誰でもそのサーバでファイルを配布することができるように |
| なってしまいます。 |
| </note> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>DavMinTimeout</name> |
| <description>サーバが DAV リソースのロックを維持する最小時間です。 |
| </description> |
| <syntax>DavMinTimeout <var>seconds</var></syntax> |
| <default>DavMinTimeout 0</default> |
| <contextlist><context>server config</context><context>virtual host</context> |
| <context>directory</context></contextlist> |
| |
| <usage> |
| <p>クライアントが DAV リソースロックを要求した場合、 |
| ロックがサーバによって自動的に解除されるまでの時間を |
| 同時に指定することができます。この値は単なるリクエストであって、 |
| サーバはこれを無視することもできますし、 |
| 任意の値をクライアントに通知することもできます。</p> |
| |
| <p>クライアントに戻すロックタイムアウトの最小時間を、 |
| 秒で、指定するために <directive>DavMinTimeout</directive> |
| ディレクティブを使います。 |
| マイクロソフトのウェブフォルダのデフォルトでは 120 秒ですが; |
| ネットワークの遅延のせいでクライアントがロックを失うのを減らすために、 |
| <directive>DavMinTimeout</directive> を使って |
| これをもっと大きな値 (例えば 600 秒) に上書きできます。</p> |
| |
| <example><title>例</title> |
| <highlight language="config"> |
| <Location /MSWord> |
| DavMinTimeout 600 |
| </Location> |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>DavDepthInfinity</name> |
| <description>PROPFIND, Depth: Infinity リクエストを許可します</description> |
| <syntax>DavDepthInfinity on|off</syntax> |
| <default>DavDepthInfinity off</default> |
| <contextlist><context>server config</context><context>virtual host</context> |
| <context>directory</context></contextlist> |
| |
| <usage> |
| <p>'Depth: Infinity' を含んでいる |
| <code>PROPFIND</code> リクエストを処理できるようにするには、 |
| <directive>DavDepthInfinity</directive> |
| ディレクティブを使います。このタイプのリクエストは |
| denial-of-service アタックとなりうるので、 |
| デフォルトでは許可されていません。</p> |
| </usage> |
| </directivesynopsis> |
| |
| </modulesynopsis> |
| |
| |