Protokolldatei Pattern

Die Job Server sind in der Lage, die Inhalte von Logfiles über das HTTP-Protokoll zu übermitteln. Um zu verhindern, dass beliebige Dateien unkontrolliert gelesen werden, dürfen nur Dateien, deren Name bestimmte Muster aufweisen, angefordert werden. Zulässige Muster müssen vom Administrator eingetragen werden. Wird dies unterlassen, können keine Dateien angefordert werden.

Bereich Config

Die Logfile Patterns sind Regular Expressions mit einer Besonderheit. Die Zeichenfolge ”/../” bzw. ”\..\” (Directory up) darf generell nicht im Namen einer angeforderten Datei auftreten. Diese Regel vereinfacht es dem Administrator, die Logfile Patterns zu definieren.

Generell wird empfohlen, den gesamten Namen zu testen. Ein Pattern wie ”.*\.log” erlaubt es, alle Dateien zu lesen, in deren Namen irgendwo die Zeichenfolge ”.log” auftritt. Dagegen führt das Pattern ”.*\.log$” bereits zu der wichtigen Einschränkung, dass der Name auf ”.log” enden muss. Im Screenshot wird das Muster ”^/tmp/.\*\\.log$” benutzt. Alle Dateien unterhalb des Verzeichnisses /tmp, die auf .log enden, dürfen angefordert werden.

Das Anfordern von Logfiles, die keinem der Muster entsprechen, werden als Fehler im Logfile des Job Servers protokolliert. Die Meldungen sehen etwa folgendermaßen aus:

ERROR [Job Server]
01-12-2009 16:43:43 CET [HttpThread] ERROR: Illegal file request : /etc/passwd
mit zusätzlicher Information (die bei jedem File-Request protokolliert wird):
...[HttpThread] Got Request from 1.2.3.4 : GET /?FNAME=/etc/passwd HTTP/1.1
...[HttpThread] Got Request from 1.2.3.4 : Host: localhost:8881
...[HttpThread] Got Request from 1.2.3.4 : User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.15)
Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15
...[HttpThread] Got Request from 1.2.3.4 : Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
...[HttpThread] Got Request from 1.2.3.4 : Accept-Language: en-us,en;q=0.5
...[HttpThread] Got Request from 1.2.3.4 : Accept-Encoding: gzip,deflate
...[HttpThread] Got Request from 1.2.3.4 : Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
...[HttpThread] Got Request from 1.2.3.4 : Keep-Alive: 300
...[HttpThread] Got Request from 1.2.3.4 : Connection: keep-alive
...[HttpThread] Got Request from 1.2.3.4 : Cookie: _ZopeId="55722729A4JSGHnrljM"; tree-s="..."
...[HttpThread] Got Request from 1.2.3.4 : Cache-Control: max-age=0

Der Anwender bekommt eine Fehlermeldung angezeigt:

ERROR: The requested filename doesn't match any of the configured patterns