<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
<modulesynopsis metafile="mod_cgid.xml.meta">

<name>mod_cgid</name>
<description>Ausf&uuml;hrung von CGI-Skripten  mit einem externen
CGI-Daemon</description>
<status>Base</status>
<sourcefile>mod_cgid.c</sourcefile>
<identifier>cgid_module</identifier>
<compatibility>Unix threaded MPMs only</compatibility>

<summary>
    <p>Abgesehen von den Optimierungen und der zus&auml;tzlichen
    <directive module="mod_cgid">ScriptSock</directive>-Direktive
    unterscheidet sich das Modul <module>mod_cgid</module> kaum
    vom Modul <module>mod_cgi</module>.
    Weitere Informationen zu Apache und CGI 
    <strong>siehe <module>mod_cgi</module>.</strong></p>

    <p>Bei bestimmten Unix-Betriebssystemen ist das Forking eines
    Prozesses beim Multi-Threading ein sehr aufw&auml;ndiger Vorgang,
    weil der neue Prozess alle Threads des &uuml;bergeordneten Prozesses
    repliziert. Um diesen Aufwand f&uuml;r jeden einzelnen CGI-Aufruf zu 
vermeiden,
    erzeugt <module>mod_cgid</module> einen externen Daemon, der f&uuml;r
    das Forking der Kindprozesse zur Ausf&uuml;hrung der CGI-Skripte 
verantwortlich
    ist. Der Server kommuniziert mit diesem Daemon mit Hilfe eines
    Unix-Domain-Socket.</p>

    <p>Dieses Modul wird standardm&auml;&szlig;ig an Stelle des Moduls
    <module>mod_cgi</module> verwendet, wenn ein Multi-Thread-MPM
    w&auml;hrend des Kompilierens gew&auml;hlt wurde. Auf Benutzerebene
    ist die Konfiguration und Arbeitsweise dieses Moduls mit
    <module>mod_cgi</module> identisch. Der einzige Unterschied ist die
    zus&auml;tzliche <code>ScriptSock</code>-Direktive, die den Namen des
    Socket f&uuml;r die Kommunikation mit dem CGI-Daemon angibt.</p>
</summary>

<seealso><module>mod_cgi</module></seealso>
<seealso><a href="../suexec.html">CGI-Programme unter unterschiedlichen UIDs 
ausf&uuml;hren</a></seealso>

<directivesynopsis location="mod_cgi">
<name>ScriptLog</name>
</directivesynopsis>

<directivesynopsis location="mod_cgi">
<name>ScriptLogLength</name>
</directivesynopsis>

<directivesynopsis location="mod_cgi">
<name>ScriptLogBuffer</name>
</directivesynopsis>

<directivesynopsis>
<name>ScriptSock</name>
<description>Der Name des Socket f&uuml;r die Kommunikation mit dem
CGI-Daemon</description>
<syntax>ScriptSock <var>Dateipfad</var></syntax>
<default>ScriptSock logs/cgisock</default>
<contextlist><context>server config</context>
<context>virtual host</context></contextlist>

<usage>
    <p>Diese Direktive gibt den Namen des Socket f&uuml;r die
    Kommunikation mit dem CGI-Daemon an. Das Socket wird mit den
    Berechtigungen des Benutzers ge&ouml;ffnet, der den Apache gestartet
    hat (normalerweise ist das der Benutzer <code>root</code>
    ). Um die Sicherheit der Kommunikation mit CGI-Skripten zu
    gew&auml;hrleisten, darf kein anderer Benutzer die Berechtigung haben,
    in das Verzeichnis zu schreiben, in dem sich das Socket befindet.</p>

    <example><title>Beispiel</title>
      ScriptSock /var/run/cgid.sock
    </example>

</usage>
</directivesynopsis>

</modulesynopsis>

<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
<modulesynopsis metafile="mod_charset_lite.xml.meta">

<name>mod_charset_lite</name>
<description>Automatische Konvertierung von
Zeichens&auml;tzen</description>
<status>Experimentell</status>
<sourcefile>mod_charset_lite.c</sourcefile>
<identifier>charset_lite_module</identifier>

<summary>
    <p>Dieses Modul befindet sich noch in einem
    <strong>experimentellen</strong> Stadium und sollte
    mit Vorsicht verwendet werden. Experimentieren Sie mit Ihrer
    <module>mod_charset_lite</module>-Konfiguration, um zu &uuml;berpr&uuml;fen,
    ob die gew&uuml;nschten Ergebnisse erreicht werden.</p>

    <p>Mit <module>mod_charset_lite</module> kann der Administrator den
    Ausgangszeichensatz von Objekten sowie den Zeichensatz angeben, in den
    die Umwandlung vorm Versenden an den Client erfolgen soll.
    <module>mod_charset_lite</module> wandelt die Daten selbst nicht um,
    sondern teilt dem Apache mit, was f&uuml;r eine Umwandlung durchgef&uuml;hrt
    werden soll. <module>mod_charset_lite</module> ist f&uuml;r EBCDIC- 
    und ASCII-Systeme gedacht. In einer EBCDIC-Umgebung wandelt
    der Apache normalerweise Text nach ISO-8859-1 um.
    Mit <module>mod_charset_lite</module>
    k&ouml;nnen auch andere Konvertierungen durchgef&uuml;hrt werden. In einer
    ASCII-Umgebung f&uuml;hrt der Apache normalerweise keine
    Umwandlungen durch, daher wird <module>mod_charset_lite</module>
    ben&ouml;tigt, um Umwandlungen durchf&uuml;hren zu k&ouml;nnen.</p>

    <p>Dieses Modul bietet einige Konfigurationsverfahren an,
    die von der russischen Apache-Version und dem
    dazugeh&ouml;rigen <code>mod_charset</code> implementiert werden.</p>
</summary>

<section id="problems"><title>Allgemeine Probleme</title>

    <section><title>Unzul&auml;ssige Zeichensatzbezeichnungen</title>

      <p>Die Parameter f&uuml;r Zeichensatzangaben 
      <directive module="mod_charset_lite">CharsetSourceEnc</directive> und
      <directive module="mod_charset_lite">CharsetDefault</directive>
      m&uuml;ssen von der APR-Bibliothek auf dem jeweiligen Betriebssystem,
      unter welchem das Modul <module>mod_charset_lite</module>
      ausgef&uuml;hrt wird, unterst&uuml;tzt werden.  Diese 
Zeichensatzbezeichnungen
      sind nicht standardisiert und entsprechen normalerweise nicht den
      in HTTP-Headern verwendeten. Zur Zeit unterst&uuml;tzt die APR-Bibliothek
      nur iconv(3), so dass die Zeichensatzbezeichnungen problemlos mit dem
      iconv(1)-Porogramm getestet werden k&ouml;nnen:</p>

      <example>
        iconv -f charsetsourceenc-Wer -t charsetdefault-Wert
      </example>
    </section>

    <section><title>Abweichungen zwischen dem Zeichensatz eines Textes
    und den Umwandlungsregeln</title>

      <p>Wenn die Umwandlungsregeln f&uuml;r einen Text nicht sinnvoll sind,
      kann die Umwandlung aus mehreren Gr&uuml;nden misslingen:</p>

      <ul>
      <li>Der Umwandlungsmechanismus kann einen falschen R&uuml;ckgabewert 
liefern,
      was zum Abbruch der Verbindung f&uuml;hren kann.</li>

      <li>Der Umwandlungsmechanismus kann stillschweigend Sonderzeichen
      (z.B. Fragezeichen) in den Ausgabepuffer schreiben, wenn er den
      Eingabepuffer nicht umwandeln kann.</li>
      </ul>
    </section>
</section>

<directivesynopsis>
<name>CharsetSourceEnc</name>
<description>Ausgabezeichensatz</description>
<syntax>CharsetSourceEnc <var>Zeichensatz</var></syntax>
<contextlist><context>server config</context>
<context>virtual host</context><context>directory</context>
<context>.htaccess</context>
</contextlist>
<override>FileInfo</override>

<usage>
    <p>Die <directive>CharsetSourceEnc</directive>-Direktive gibt den
    Ausgabezeichensatz f&uuml;r Dateien aus den entsprechenden Containern 
an.</p>

    <p>Der Wert des <var>Zeichensatz</var>-Arguments muss
    ein g&uuml;ltiger Zeichensatz der APR-Bibliothek sein (in der Regel sind 
dies
    alle von iconv unterst&uuml;tzten Zeichens&auml;tze).</p>
    
    <example><title>Beispiel</title>
      &lt;Directory /export/home/trawick/apacheinst/htdocs/convert&gt;<br />
      <indent>
        CharsetSourceEnc  UTF-16BE<br />
        CharsetDefault    ISO-8859-1<br />
      </indent>
      &lt;/Directory&gt;
    </example>

    <p>Die Zeichensatzbezeichnungen dieses Beispiels funktionieren f&uuml;r die
    iconv-Umwandlungen unter Solaris 8.</p>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>CharsetDefault</name>
<description>Der Zeichensatz, in den die Umwandlung erfolgen soll.</description>
<syntax>CharsetDefault <var>Zeichensatz</var></syntax>
<contextlist><context>server config</context>
<context>virtual host</context><context>directory</context>
<context>.htaccess</context>
</contextlist>
<override>FileInfo</override>

<usage>
    <p>Die <directive>CharsetDefault</directive>-Direktive gibt den
    Zeichensatz an, in den die Dokumente aus den angegebenen Containern
    umgewandelt werden sollen.</p>

    <p>Der Wert des <var>Zeichensatz</var>-Arguments muss
    eine g&uuml;ltiger Zeichensatz der APR-Bibliothek sein (in der Regel sind 
dies
    alle von iconv unterst&uuml;tzten Zeichens&auml;tze).</p>

    <example><title>Beispiel</title>
      &lt;Directory /export/home/trawick/apacheinst/htdocs/convert&gt;<br />
      <indent>
        CharsetSourceEnc  UTF-16BE<br />
        CharsetDefault    ISO-8859-1<br />
      </indent>
      &lt;/Directory&gt;
    </example>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>CharsetOptions</name>
<description>Kontrolliert Optionen des Moduls</description>
<syntax>CharsetOptions <var>Option</var> [<var>Option</var>] ...</syntax>
<default>CharsetOptions DebugLevel=0 NoImplicitAdd</default>
<contextlist><context>server config</context>
<context>virtual host</context><context>directory</context>
<context>.htaccess</context>
</contextlist>
<override>FileInfo</override>

<usage>
    <p>Die <directive>CharsetOptions</directive>-Direktive kontrolliert
    einige Optionen des Moduls <module>mod_charset_lite</module>.
    Als <var>Option</var> kann angegeben werden:</p>

    <dl>
      <dt><code>DebugLevel=<var>n</var></code></dt>

      <dd>Mit dem Schl&uuml;sselwort <code>DebugLevel</code> l&auml;sst sich
      der Umfang der vom Modul erzeugten Debug-Meldungen steuern.
      Gem&auml;&szlig; Voreinstellung werden keine Meldungen erzeugt. Das
      entspricht der Angabe <code>DebugLevel=0</code>.
      Je h&ouml;her der Wert gesetzt wird, um so mehr Meldungen werden
      erzeugt und um so mehr geht die Serverleistung zur&uuml;ck. Die
      Bedeutung der Zahlenangaben wird am Beginn der Datei
      <code>mod_charset_lite.c</code> in Verbindung mit den
      Definitionen der <code>DBGLVL_</code>-Konstanten
      beschrieben.</dd>

      <dt><code>ImplicitAdd | NoImplicitAdd</code></dt>

      <dd>Die Option <code>ImplicitAdd</code> gibt an, dass
      <module>mod_charset_lite</module> immer die dazugeh&ouml;rigen
      Filter aktivieren soll, wenn die Konfiguration eine Umwandlung des
      Zeichensatzes vorschreibt. Wird die Filterkette explizit mit der
      <directive module="mod_mime">AddOutputFilter</directive>-Direktive
      konfiguriert, sollte <code>NoImplicitAdd</code> nicht angegeben
      werden, damit <module>mod_charset_lite</module>
      die Filter nicht aktiviert.</dd>
    </dl>
</usage>
</directivesynopsis>

</modulesynopsis>
Title: WebDAV aktivieren
mod_dav Distributed Authoring und Versioning (WebDAV) Erweiterung mod_dav.c dav_module

Dieses Modul stellt WebDAV-Funktionalität (Distributed Authoring und Versioning) der Klassen 1 und 2 zur Verfügung. Diese Erweiterung des HTTP-Protokolls erlaubt das Erzeugen, Verschieben, Kopieren und Löschen von Dateien und Verzeichnissen auf einem entfernten Webserver über HTTP.

DavLockDB LimitXMLRequestBody WebDAV-Ressourcen

Um das Modul mod_dav zu aktivieren, wird einem Container in der httpd.conf-Datei folgende Zeile hinzugefügt:

Dav On

Damit wird der DAV-Dateisystem-Provider aktiviert, der vom Modul mod_dav_fs implementiert wird. Daher muss dieses Modul mit kompiliert oder zur Laufzeit mit der LoadModule-Direktive geladen werden.

Ferner muss mit der DavLockDB- Anweisung ein Standort für die Datenbank der DAV-Locks im globalen Abschnitt der httpd.conf-Datei angegeben werden:

DavLockDB /usr/local/apache2/var/DavLock

Im Verzeichnis der Lock-Datenbankdatei benötigen der Benutzer und die Gruppe, unter denen der Apache ausgeführt wird, Schreibrechte.

Der Location-Direktive kann eine Limit-Klausel hinzugefügt werden, damit der Zugriff auf die DAV-Bereiche beschränkt wird. Soll die maximale Anzahl Bytes begrenzt werden, die ein DAV-Client bei einer Anfrage senden kann, muss die LimitXMLRequestBody- Direktive angegeben werden. Die "normale" LimitRequestBody-Direktive hat keine Auswirkungen auf DAV-Anfragen.

Vollständiges Beispiel DavLockDB /usr/local/apache2/var/DavLock

<Location /foo>
Dav On

AuthType Basic
AuthName DAV
AuthUserFile user.passwd

<LimitExcept GET OPTIONS>
require user admin
</LimitExcept>
</Location>

Das Modul mod_dav basiert auf dem Modul mod_dav für Apache 1.3 von Greg Stein. Weitere Information zum Modul stehen auf dieser Site zur Verfügung.

Sicherheit

Da DAV-Zugriffsmethoden Remote-Clients die Manipulation von Dateien auf dem Server gestatten, muss der Server geschützt sein, bevor das Modul mod_dav aktiviert wird.

Jeder Bereich des Servers, für den das DAV aktiviert ist, sollte einer Authentifizierung unterliegen. Die Verwendung der HTTP-Basic-Authentifizierung ist nicht empfehlenswert, sondern es sollte mindestens die HTTP-Digest-Authenifizierung mit dem Modul mod_auth_digest durchgeführt werden. Fast alle WebDAV-Clients unterstützen diese Authentifizierungsmethode. Eine mögliche Alternative ist die Basic-Authentifizierung über eine SSL-fähige Verbindung.

Damit das Modul mod_dav Dateien bearbeiten kann, muss der Apache unter dem Benutzer und der Gruppe ausgeführt werden, der Schreibrechte für die Verzeichnisse und Dateien hat. Eigentümer neu erzeugter Dateien sind ebenfalls dieser Benutzer und diese Gruppe. Darum ist die Zugriffskontrolle für diese Benutzerkonten besonders wichtig. Der DAV-Bestand ist eine reine Apache-Angelegenheit und deshalb sollte eine Veränderung von außen (beispielsweise über FTP oder Programme auf Dateisystemebene nicht möglich sein.

mod_dav kann Gegenstand zahlreicher Denial-of-Service-Attacken sein. Mit der LimitXMLRequestBody-Direktive kann die Größe des benutzten Speichers beim Parsing umfangreicher DAV-Anfragen beschränkt werden. Die DavDepthInfinity-Direktive kann PROPFIND-Anfragen für einen sehr umfangreichen Bestand daran hindern, zuviel Speicher zu blockieren. Eine andere Variante einer Denial-of-Service-Attacke ist das Belegen des gesamten verfügbaren Festplattenspeichers mit vielen großen Dateien durch einen Client. Der Apache bietet keine Möglichkeit, dies zu verhindern, daher sollten nicht vertrauenswürdige Benutzer keinen DAV-Zugriff erhalten.

Komplexe Konfigurationen

Eine häufige Anforderung an das Modul mod_dav ist das Bearbeiten dynamischer Dateien (PHP-Skripte, CGI-Scripte usw.). Das ist schwierig, weil eine GET-Anfrage das Skript immer ausführt, anstatt den Inhalt herunterzuladen. Das kann unter anderem dadurch verhindert werden, dass dem Inhalt zwei unterschiedliche URLs zugeordnet werden, von denen einer das Skript ausführt und der andere das Herunterladen und die Bearbeitung mit DAV erlaubt.

Alias /phparea /home/gstein/php_files
Alias /php-source /home/gstein/php_files
<Location /php-source> DAV On
ForceType text/plain
</Location>

In diesem Beispiel kann über http://example.com/phparea auf die Ausgabe der PHP-Skripte zugegriffen und über http://example.com/php-source und einen DAV-Client können die Skripte bearbeitet werden.

Dav Aktiviert WebDAV-HTTP-Methoden Dav On|Off|Providername Dav Off directory

Mit der Dav-Direktive werden die WebDAV-HTTP-Methoden für einen angegebenen Container aktiviert:

<Location /foo>
Dav On
</Location>

Der Wert On ist eigentlich ein Alias für den Standard-Provider filesystem, der vom Modul mod_dav_fs bedient wird. Wurde das DAV einmal für einen bestimmten Bereich aktiviert, dann kann es für untergeordnete Bereiche nicht mehr deaktiviert werden. Ein vollständiges Konfigurationsbeispiel finden Sie weiter oben.

Aktivieren Sie das WebDAV nicht, wenn Sie den Server noch nicht geschützt haben. Andernfalls ist jeder in der Lage, Dateien auf Ihrem System zu verteilen.
DavMinTimeout Mindestzeitraum, über den der Server einen Lock einer DAV-Ressource aufrecht hält. DavMinTimeout Sekunden DavMinTimeout 0 server configvirtual host directory

Wenn ein DAV-Client einen Ressourcen-Lock anfordert, kann er gleichzeitig angeben, wann der Lock automatisch vom Server aufgehoben werden soll. Diese Angabe ist eine reine Anfrage, die der Server ignorieren oder dem Client einen beliebigen anderen Wert mitteilen kann.

Mit der DavMinTimeout-Direktive wird die minimale Lock-Zeit für einen Client in Sekunden angegeben. Für Microsoft Web Folders liegt die Voreinstellung bei 120 Sekunden. Mit der DavMinTimeout-Anweisung kann diese Vorgabe mit einem höheren Wert überschrieben werden (beispielsweise mit 600 Sekunden), um die Wahrscheinlichkeit zu verringern, dass der Client den Lock aufgrund eines zu langsamen Netzwerks verliert.

Beispiel <Location /MSWord>
DavMinTimeout 600
</Location>
DavDepthInfinity Erlaubt Anfragen mit der HTTP-Methode PROPFIND DavDepthInfinity on|off DavDepthInfinity off server configvirtual host directory

Die DavDepthInfinity-Direktive erlaubt die Verarbeitung von PROPFIND-Anfragen mit dem Header Depth: Infinity. Da dieser Anfragetyp eine Denial-of-Service-Attacke zulässt, ist die Voreinstellung off.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to