Logo: Proxomitron - Ein Universeller Webfilter

URL-Kommandos

Mit Hilfe der URL-Kommandos ist es möglich, Proxomitron direkt vom Browser aus zu steuern.
So kann man z.B. mal eben eine bestimmte Seite ungefiltert aufrufen, eine Datei von der Festplatte laden und durch die Filter laufen lassen oder sogar für verschiedene Websites unterschiedliche Konfigurationsdateien laden.

Die meisten URL-Kommandos werden dem aufgerufenen Hostnamen vorangestellt. Hinter jedes Kommando werden als Trennzeichen entweder zwei Punkte ("..") oder zwei Schrägstriche ("//") gesetzt.
Es hängt von deinem Browser ab, welche Variante am besten funktioniert. Manche Browser erkennen die "ungültigen" URLs als Tippfehler und korrigieren sie automatisch, sodass die URL-Kommandos nicht mehr funktionieren. In diesem Fall hilft ein geeigneter persönlicher Präfix.

http://beliebigesURL-Kommando..www.domain.de/pfad/

Beachte, dass das Kommando nicht vor den gesamten URL, sondern hinter das http:// gesetzt wird.

Es ist auch möglich, URL-Kommandos zu kombinieren. Die Syntax sieht in diesem Fall so aus:

http://beliebigesURL-Kommando..anderesURL-Kommando..www.domain.de/pfad/

Die einzelnen Kommandos

http://src..www.domain.de/pfad/
Zeigt den Quelltext der Seite an. Die Tags, Attribute, usw. werden farblich hervorgehoben.
http://dbug..www.domain.de/pfad/
Zeigt ebenfalls den Quelltext der Seite an, jedoch mit einer Vorher-Nachher-Ansicht der durch Filter veränderten Blöcke. Diese Ansicht entspricht der Funktion "Debug-Ansicht im Browser" im Logfenster.
http://load..Dateiname?www.domain.de/pfad/
Lädt eine andere Konfigurationsdatei.
Optional kann an den Dateinamen ein Fragezeichen und ein URL angehängt werden, der nach dem Laden der Konfigurationsdatei aufgerufen werden soll.
http://bout..www.domain.de/pfad/
Ruft die Seite mit deaktivierter Filterung der ausgehenden Header auf.
http://bin..www.domain.de/pfad/
Ruft die Seite mit deaktivierter Filterung der eingehenden Header auf.
http://bweb..www.domain.de/pfad/
Ruft die Seite mit deaktivierten Webseiten-Filtern auf.
http://bypass..www.domain.de/pfad/
Ruft die Seite im Bypass-Betrieb auf. Sie wird also überhaupt nicht gefiltert.
http://https..www.domain.de/pfad/
Dieses Kommando ermöglicht es, mit SSL verschlüsselte Webseiten aufzurufen, auch wenn der Browser das nicht unterstützt. Die verschlüsselte HTTPS-Verbindung wird in diesem Fall zwischen Server und Proxomitron hergestellt, während die Verbindung zwischen Browser und Proxomitron unverschlüsselt ist.
Vorsicht: Diese Funktion kann unter ganz bestimmten Bedingungen eine Sicherheitslücke öffnen. Lies dazu den Abschnitt Sicherheit.
http://file..c|/Pfad/Datei.html
Ruft eine Datei von der Festplatte auf. Sie wird gefiltert und dann im Browser dargestellt.
Vorsicht: Diese Funktion kann eine Sicherheitslücke öffnen, wenn Proxomitron von mehreren Personen in einem Netzwerk benutzt wird. Lies dazu den Abschnitt Sicherheit.
http://local.ptron/Datei.gif
Dieses URL-Kommando arbeitet ähnlich wie "file..". Der Unterschied ist, dass hierbei keine beliebigen Pfade auf lokale Dateien akzeptiert werden. "local.ptron" funktioniert wie ein in Proxomitron integrierter Webserver, dessen root-Verzeichnis der Ordner "HTML" im Proxomitron-Programmordner ist.
Folglich können keine Dateien aufgerufen werden, die außerhalb dieses Ordners liegen. Da dadurch die Sicherheitsprobleme des Kommandos "file" wegfallen, benötigt "local.ptron" keinen persönlichen Präfix.
"local.ptron" eignet sich hervorragend, um eigene Erweiterungen oder CSS-Dateien in Webseiten einzufügen.

Tricks mit Lesezeichen

Viele Browser bieten die Möglichkeit, kurze JavaScript-Befehle und -Befehlsfolgen als Lesezeichen bzw. Favoriten zu speichern. Wenn man ein solches Lesezeichen aufruft, wird das im Lesezeichen enthaltene Skript ausgeführt.

Die Schreibweise ist folgende:
"javascript:eineZeilemitBefehlenohneLeerzeichendazwischen"

Daraus ergeben sich interessante Anwendungsmöglichkeiten für URL-Kommandos:

Die aktuelle Seite im Bypass-Modus betrachten...
javascript:window.location.href="http://Präfixbypass.."+window.location.href;
Den Quelltext der aktuellen Seite ansehen...
javascript:window.location.href="http://Präfixsrc.."+window.location.href;
Den Quelltext der aktuellen Seite mit markierten Änderungen ansehen...
javascript:window.location.href="http://Präfixdbug.."+window.location.href;

Anstelle von "Präfix" musst du den von dir eingestellten Präfix für URL-Kommandos eintragen. Näheres dazu im Abschnitt Sicherheit.

Sicherheit

URL-Kommandos lösen viele Probleme, aber sie können bei unsachgemäßer Benutzung auch neue schaffen. – Sicherheitsprobleme, die man kennen und vermeiden sollte, bevor andere auf die Idee kommen, sie auszunutzen.

Problem 1

URL-Kommandos können auch direkt in einer Webseite stehen. Z.B. als URL eines Bildes oder eines Skripts. Das Bypass-Kommando könnte in diesem Zusammenhang dazu missbraucht werden, um Objekte an der Filterung vorbei zu laden.

Lösung

Um zu verhindern, dass Webseiten URL-Kommandos benutzen, sollte auf jeden Fall das Feld "Präfix für alle URL-Kommandos" in den Einstellungen ausgefüllt werden. Die dort angegebene Zeichenfolge muss dann jedem aufgerufenen URL-Kommando vorangestellt werden, damit dieses von Proxomitron akzeptiert wird.

Wenn man bei "Persönlicher Präfix für URL-Kommandos" z.B. die Zeichenfolge "flef48-" einträgt, werden URL-Kommandos nur noch akzeptiert, wenn sie in der Form "flef48-Kommando.." aufgerufen werden.

Hinweis: Für Filter die URL-Kommandos benutzen, bietet Proxomitron eine bequeme Methode an, immer den jeweilis eingestellten Präfix zu benutzen: Das Metazeichen \x. \x steht immer für den aktuellen Präfix und braucht im Filter einfach nur vor das URL-Kommando gesetzt zu werden.

Problem 2

Das URL-Kommando "file" ermöglicht ja das Laden lokaler Dateien und somit auch das Einbinden lokaler Dateien als Objekte in Webseiten.

Da die wenigsten Benutzer wissen, dass Browser Daten aus unterschiedichen Datenquellen laden und gemeinsam darstellen können, ohne dass diese Datenquellen dabei aufeinander zugreifen können, lässt sich durch das Einbinden einer lokalen Datei in eine Webseite leicht der Eindruck erwecken, die betreffende Datei sei im Besitz des Websitebetreibers oder für jeden über das Internet zugänglich.

Hintergrund

In Wirklichkeit besteht keine Gefahr. URL-Kommandos gehören nämlich aus Sicht des Browsers zum Domainnamen. Deshalb gehört eine über ein URL-Kommando aufgerufene Webseite oder Datei immer zu einer anderen Domain als die Seite, die diesen Aufruf veranlasst hat. Deshalb gelten in diesem Fall die üblichen Einschränkungen für domainübergreifenden Datenzugriff: Ein Skript oder Applet kann zwar Daten von einer anderen Domain, z.B. mit Hilfe eines iFrames, einbinden und so für den Benutzer sichtbar machen, es kann aber selbst nicht auf diese Daten zugreifen.

Die Vehinderung domainübergreifenden Datenaustausches gehört zu den grundlegenden Sicherheitsfunktionen jedes Browsers. Wenn es bei dieser Sicherheitsvorkehrung eine Lücke gäbe, dann hätte der Browser ein Sicherheitsproblem, dessen Tragweite weit über Spezialfälle wie Proxomitron und dessen URL-Kommandos hinausginge.

Lösung

Gegen faule Tricks, bei denen die Unwissenheit des Benutzers die eigentliche Sicherheitslücke ist, hilft nur Aufklärung.

Benutzern ihren Festplatteninhalt anzuzeigen und zu behaupten, er sei von überall her sichtbar, ist ein uralter Trick. Gerne wird dazu auch gleich ein vermeintlicher Patch oder Sicherheitsprogramm zum Download angeboten. An diesem Punkt wird es gefährlich. Vorher nicht.

Spezialprobleme im Serverbetrieb

Proxomitron ist ursprünglich zur lokalen Benutzung auf dem Computer entwickelt worden, auf dem auch der Browser läuft und an dem der Benutzer sitzt.

Wenn Proxomitron als zentraler Proxy für mehrere Computer in einem LAN benutzt werden soll, dann sollten URL-Kommandos wenn irgend möglich ausgeschaltet werden.

Insbesondere die Kommandos "file" und "load" sind im Serverbetrieb problematisch. Mit "file" könnten Benutzer durch entsprechend formulierte URL-Aufrufe Dateien aus dem Dateisystem des Servers abrufen und mit dem Kommando "load" könnten Benutzer andere Konfigurationsdateien laden. Da die Konfiguration immer für alle Benutzer gemeinsam gilt, würde dadurch auch die Filterung für alle Benutzer beeinflusst werden.

© Michael Bürschgens <website@proxomitron.de>