Dennis: POST-Request mit Proxy Authentifizierung

Beitrag lesen

Hi tobeit,

Ich denke, ich bin noch nicht richtig in der Thematik durch gestiegen um nach den passenden Informationen zu suchen, deshalb bin ich über jede Anregung dankbar ...

Nach meinen kurzen Recherchen gerade, ist ein PAC-Script nichts anderes als eine Proxy-Autokonfiguration. Im Prinzip rufst der Browser da eine Ressource ab und erhält davon einen Javascript-ähnlichen Code, welchen der Browser evaluiert und damit seine Proxy-Einstellungen automatisch setzt. Das besondere daran ist, dass diese Ressource natürlich von PHP o.ä. dynamisch generiert sein kann und somit abhängig von den Tageszeiten, abhängig von der IP, von der aus du das PAC-Script aufrufst oder von irgendeinem anderen, den Netzwerk-Administratoren gefallenden Faktor sein kann.

Finde also zunächst heraus, welche Proxy-Einstellungen das PAC-Script vornimmt, damit du diese manuell nachbauen kannst.

Alles was nun folgt, ist lediglich ein ganz normaler Request über einen zugangsgeschützten Proxy. Dabei probiert der Browser zunächst eine Nutzung des Proxys ohne sich dafür zu authentifizieren, womit er vom Proxy mit einem 406 Proxy Authentication Required und Details im Proxy-Authenticate Header in der Response belohnt wird. Also zeigt der Browser nun ein Eingabefeld für Benutzername und Passwort an und versucht den Request noch einmal, unter Verwendung des Proxy-Authorization Headers beim Request.

Sind die Zugangsdaten für den Proxy korrekt gewesen, so liefert der Proxy die gewünschte Seite. Dies kann z.B. mit 200 OK geschehen, oder aber auch mit 401 Unauthorized, falls der Zielserver ebenfalls noch eine Authorisierung erforder, Details stehen dann im WWW-Authenticate Header in der Response. Nun kann der Browser erneut nach Benutzername und Passwort fragen, diesmal für den Zielserver und danach wieder einen Request starten. Für diesen Request muss natürlich erneut der Proxy-Authorization Header (für den Proxy) gesendet werden, weil wir sonst wieder von vorne anfangen würden *g* Zusätzlich wird nun aber noch der Authorization Header mitgeschickt (für den Zielserver).

Und dann hat der Browser hoffentlich seine Seite erhalten, welche er anzeigen soll. Uff. ;-)

Viele Grüße,
  ~ Dennis.