Logo: Proxomitron - Ein Universeller Webfilter

Programmoberfläche: HTTP-Header Filter

Filterübersicht / Steuerung

Fenster mit Liste der Header-Filter

Wie bei den Seitenfiltern, kann man auch bei den Header-Filtern jeden Filter einzeln aktivieren und deaktivieren. Es gibt allerdings einen Unterschied: Header-Filter können getrennt für ausgehende und ankommende Header geschaltet werden.

Die meisten Header-Zeilen kommen nur entweder bei ausgehenden Headern oder bei ankommenden Headern vor. Um dir bei der richtigen Auswahl zu helfen, steht in jedem Filternamen in Klammern, ob der Filter für ausgehende (Out) Header oder für ankommende (In) Header benutzt werden kann.

Schaltflächen im Bereich "Optionen"
Bearb.
Öffnet den in der Liste ausgewählten Filter zum Bearbeiten im Filtereditor. (Ein Doppelklick auf den Filternamen bewirkt das gleiche.)
Neu
Legt einen neuen Filter an und öffnet ihn im Filtereditor.
Kopie
Erzeugt eine Kopie des in der Liste ausgewählten Filters und öffnet sie im Filtereditor.
Löschen
Löscht den oder die in der Liste ausgewählten Filter.
Suchen
Wenn man in das Suchfeld eine Zeichenfolge eingibt, dann werden nur noch die Filter angezeigt, in deren Namen diese Zeichenfolge vorkommt.
Häkchen/Anklickkästchen/Checkbuttons
Das Häkchen neben jedem Filter bestimmt, ob er eingeschaltet ist. Wenn man mehrere Filter in der Liste ausgewählt hat, kann man alle gemeinsam ein- oder ausschalten, indem man eines der Kästchen mit der rechten Maustaste anklickt.

Hinweis: Das Ausschneiden und Einfügen von Filtern mit Hilfe der beiden Schaltflächen ist ein rein interner Vorgang. Um Filter in die Zwischenablage zu exportieren oder daraus zu importieren, müssen die entsprechenden Befehle im Kontextmenü benutzt werden. Mehr dazu im folgenden Abschnitt...

Importieren / Exportieren von Filtern

Kontextmenü des in der Übersicht markierten Filters

Nach einem Rechtsklick auf einen oder mehrere markierte Filter erscheint ein Kontextmenü, über das Filter entweder als Text in die Zwischenablage exportiert oder umgekehrt daraus importiert werden können. Diese Funktion ist z.B. nützlich, wenn zusätzliche Filter aus einem Diskussionsforum eingefügt oder eigene Filter in ein Forum gestellt werden sollen.

Fehlermeldung: Die Zwischenablage enthält keinen gültigen Filter.

Beim Importieren von Filtern aus der Zwischenablage kann es passieren, dass Proxomitron den Filter als fehlerhaft ablehnt. Wenn das passiert, dann stimmt irgend etwas mit dem grundsätzlichen Format des Filters nicht. Oft liegt es daran, dass der Filter unvollständig markiert und dadurch unvollständig in die Zwischenablage kopiert worden ist, sodass Zeilen oder Zeichen fehlen.

Manchmal gibt es auch Probleme mit den Leerzeichen, mit denen Proxomitron manche Zeilen einrückt. Da eine Kette aus mehreren normalen Leerzeichen in HTML-Seiten immer auf ein einzelnes Leerzeichen reduziert wird, ersetzen manche Diskussionsforen und ähnliche Systeme derartige Ketten automatisch durch abwechselnde Folgen aus normalen und nicht umbrechenden Leerzeichen. Je nach Browser werden diese zwei Typen von Leerzeichen auch beim Kopieren in die Zwischenablage als unterschiedliche Zeichen beibehalten. Diese nicht-normalen Leerzeichen müssen erst einmal durch normale ersetzt werden, bevor Proxomitron den Filter importieren kann.

Editor für HTTP-Header Filter

Fenster des Headerfilter-Editors

Wenn du einen Headerfilter bearbeitest oder einen neuen schreibst, dann passiert das normalerweise in diesem Fenster.

HTTP-Header und Filtername

Dieses Feld erfüllt zwei Aufgaben: Es gibt an, welcher Header gefiltert werden soll und dient gleichzeitig als Bezeichnung für den Filter. Die Schreibweise ist deshalb genau festgelegt: Am Anfang steht der Name der gesuchten Header-Zeile, gefolgt von einem Doppelpunkt und erst dahinter darf ein beliebiger Text folgen, der den Filter bezeichnet.

Damit man sofort sieht, ob ein Filter für eingehende (In) oder für ausgehende (Out) Header gedacht ist, schreibe ich an den Anfang jedes Filternamens das Kürzel "In" oder "Out". Da Headerfilter im Gegensatz zu Seitenfiltern immer alphabetisch sortiert werden, manche davon aber in einer bestimmten Reihenfolge, nacheinander auf die selbe Headerzeile angewandt werden sollen, steht am Anfang einiger Headerfilternamen außerdem eine Zahl. Diese soll nur die Sortierung der Filter beeinflussen und hat nichts mit deren Funktion oder Bezeichnung zu tun.

Die Namen der in der deutschen Proxomitron-Distribution enthaltenen Headerfilter haben folgende Struktur:

<Headerzeile>: <Filtername>
<Headerzeile>: <(Out|In)>[<Zahl>][<"WICHTIG!"-Hinweis>]<Filtername><Autorenkürzel><Versionsnummer>
URL-Entsprechnung

Bevor ein Filter ausgeführt wird, prüft Proxomitron, ob in diesem Feld etwas steht. Wenn ja, wird der Filter nur dann ausgeführt, wenn der in diesem Feld eingetragene Ausdruck auf den URL der betroffenen Seite bzw. Datei zutrifft.

Der Vergleich erfolgt allerdings nicht 1 zu 1, sondern nach folgendem Schema:

  1. URLs werden ohne Protokollangabe betrachtet.
    Eine URL-Entsprechung, die auf die Seite http://www.buerschgens.de/ zutreffen soll, muss also www.buerschgens.de/ heißen.
  2. Der Ausdruck muss nicht den vollen URL erfassen. URLs werden als "zum Ende hin offen" betrachtet.
    Wenn die URL-Entsprechung also www.buerschgens.de/Prox/ lautet, dann erfasst sie alle URLs, die mit dieser Zeichenfolge beginnen. Beispielsweise www.buerschgens.de/Prox/Seiten/Datei.html. Wenn dieses Verhalten nicht gewünscht ist, muss der Ausdruck mit (^?) abgeschlossen werden.
  3. Wenn SSL-verschlüsselte Seiten gefiltert werden und die URLs mit https:// beginnen, dann muss in der URL-Entsprechung zusätzlich die SSL-Portnummer 443 angegeben werden.
    Wenn also der URL https://www.buerschgens.de/Prox/ erfasst werden soll, dann muss die URL-Entsprechung www.buerschgens.de:443/Prox/ lauten. Der Grund für diese Besonderheit ist übrigens nicht etwa Gemeinheit des Programmautors, sondern, dass der URL den der Browser an Proxomitron sendet, tatsächlich so aufgebaut ist. Browser zeigen die Portnummer nur normalerweise nicht in der Adresszeile an.

Wenn als URL-Entsprechung der Ausdruck *.de angegeben ist, dann wird der Filter nur auf Header von deutschen Domains angewandt. Wenn im Feld statt dessen (^*.de) steht, wird der Filter auf alle Header von nicht-deutschen Domains angewandt.

In diesem Feld ist der volle Satz an Befehlen und Metazeichen zulässig.

Header-Wert Suchen
Jeder Header besteht aus einem Namen und einem Wert. Während der Ausdruck im Feld "HTTP-Header" den Namen überprüft, ist dieses Feld für die Daten zuständig, die der betroffene Header transportiert.
Auch in diesem Feld kannst du den vollen Satz an Befehlen und Metazeichen einsetzen.
Im Beispiel wird die vom Browser an den Server gesendete Browserkennung durch die Fantasiekennung Space Bison/0.02 [fu] (Win67; X; SK) ersetzt.
Ersetzungsausdruck
In dieses Feld wird der Text eingetragen, durch den der gefilterte Header-Wert ersetzt werden soll.
Wie bei den Seitenfiltern, ist auch hier der Einsatz von Variablen und einigen wenigen Metazeichen erlaubt.

Kontextmenüs

In den Kontextmenüs der verschiedenen Eingabefelder verstecken sich teilweise sehr nützliche Funktionen.

Kontextmenü des Textfeldes 'Header-Wert Suchen Kontextmenü des Textfeldes 'Ersetzungsausdruck
Menüpunkt "Testen"
Ist für alle Felder verfügbar, in die reguläre Ausdrücke eingetragen werden. Ein Klick darauf öffnet das Testfenster (siehe unten), in dem der jeweilige Ausdruck offline getestet werden kann.
Untermenü "Liste einbind."
Enthält alle in der Konfiguration vorhandenen Listen. Ein Klick auf einen der Listennamen fügt einen Listenaufruf im Format $LST(<Listenname>) in den Ausdruck ein.
Untermenü "Liste öffnen"
Enthält alle in der Konfiguration vorhandenen Listen und zeigt daneben auch die jeweiligen Dateinamen an. Ein Klick auf eine der Listen öffnet die jeweilige Datei zum Bearbeiten im Texteditor.
Datei-URL einfügen
Fügt einen Datei-URL im Format file:///C|/Ordner/Datei..txt ein.
MIME encode/decode
Der markierte Textabschnitt wird im base64-Verfahren codiert oder decodiert. Aus Proxomitron wird z.B. UHJveG9taXRyb24= und umgekehrt. Manche Headerzeilen benötigen base64-codierten Text. Z.B. Authorization:
© Michael Bürschgens <website@proxomitron.de>