Re: HTTPS-Client bringt Fehler beim Wechsel von getIntputStream() auf getOutputStream



Am Sun, 17 Jun 2007 19:18:23 +0200 schrieb Ulrich Schmidt:

Lothar Kimmeringer schrieb:
Ulrich Schmidt wrote:

Wenn ich eine neue URLconnection aufsetze verliere ich doch die Session,
d.h. hieße, wenn ich den Login mal durch habe, auch meinen Login?

Du solltest Dich vielleicht ein bisschen mehr mit dem HTTP-
Protokoll beschaeftigen. Dieses ist per Definition stateless.
Genau aus dem Grund werden ja Dinge wie Cookies oder Werte
im Querystring des Requests uebertragen, damit ein Konzept
namens Session ueberhaupt moeglich ist.


Mit "ein bisschen" beschäftigen ist ganz schön viel Arbeit verbunden.

Naja, zumindest die diversen Zusammenfassungen kann man sich ja
mal anschauen, wenn man merkt, dass man etwas prinzipielles nicht
verstanden hat und deswegen Implementierungen nicht funktionieren,
wie man urpruenglich dachte. Z.B. unter
http://de.wikipedia.org/wiki/HTTP
koennte man ziemlich am Anfang - und bevor das ziemlich ins Detail
geht - nachlesen:

| Im Kern ist HTTP ein zustandsloses Protokoll. Das bedeutet auch,
| dass nach erfolgreicher Datenübertragung die Verbindung zwischen
| den beiden Kommunikationspartnern nicht aufrechterhalten zu
| werden braucht. Sollen dann weitere Daten übertragen werden,
| muss zunächst eine weitere Verbindung aufgebaut werden. Auch ein
| zuverlässiges Mitführen von Sitzungsdaten kann erst auf der
| Anwendungsschicht, zum Beispiel durch Cookies, implementiert werden.

Bei HTTP kann ich deiner Darstellung ja auch noch folgen. Aber bei HTTPS
wird doch ein Sessionkey zwischen Server und Client ausgehandelt mit dem
dann der Traffic kryptiert wird.

Auch hier ueblicherweise pro Request, was mit ein Grund war,
"keep-alive" ins Leben zu Rufen, da das ziemlich auf die Per-
formance und Serverressourcen ging, wegen jedem Schmarrn eine
SSL-Verbindung auszuhandeln.

Sobald ich eine neue URLconnection
aufmache gibts ja auch wieder einen neuen Sessionkey - d.h. in der
Folge, ich muss meinen Login wiederholen.

Nur, wenn die Session an die SSL-Session gebunden ist, was
eher unueblich ist.

Evtl. solltest Du Dir Tools wie der HttpClient von Apache an-
sehen, die einem in dieser Richtung abnehmen koennen.

Das habe ich mir auch schon angesehen; aber ich finde es eigentlich noch
komplizierter als der oben beschriebene Weg. Die Beschreibung ist recht
dünn und wenn man da durchsteigen will ist der Aufwand vermutlich
ähnlich wie mit den Java SDK-Klassen.

Den Eindruck hatte ich bisher nicht, da eben das Mitfuehren
der Cookies kein so grosses Problem war. Evtl. liegt Dein
Problem daran, dass die Session bei Deinem Server auch ueber
die URL im Querystring uebertragen wird und das Cookie nur
ein Konfigurationsfehler ist (waer nicht das erste mal, dass
man sowas antrifft).


Gruesse, Lothar
--
Lothar Kimmeringer E-Mail: spamfang@xxxxxxxxxxxxxx
PGP-encrypted mails preferred (Key-ID: 0x8BC3CD81)

Always remember: The answer is forty-two, there can only be wrong
questions!
.



Relevant Pages

  • Re: [Full-disclosure] Google Re-authentication Bypass with SID and LSID cookies
    ... In the 'Vulnerability' section, the URL to the previous advisory is ... Session management error ... On successful Orkut login, the following cookies are set:- ...
    (Full-Disclosure)
  • Re: maintain a single session across multiple servers
    ... I am trying to find a solution to a login mechanism for different domains on different servers with PHP5. ... The first idea is had is to use the same session for all domains. ... Cookies are designed to be domain specific. ... And even if they all have the same path on the server, there is a huge amount which can go wrong, as well as huge potential security holes. ...
    (comp.lang.php)
  • [Full-disclosure] Google Re-authentication Bypass with SID and LSID cookies
    ... Session management error ... This can be exploited by an attacker to bypass re-authentication. ... On successful Orkut login, the following cookies are set:- ...
    (Full-Disclosure)
  • Re: multiple sessions
    ... My browser accepts cookies, in the temp directory a file made sess_blabla ... isset($_SESSIONis false and I am redirected to my login page. ... The session lines in php.ini looks like: ... >> php 4.3. ...
    (comp.lang.php)
  • Re: Terminaldienste-Client automatisieren
    ... Clients so konfigurieren das beim Login eine Verbindung zum Terminalserver aufgebaut wird und beim beenden der Session die mstsc.exe wieder aktiviert wird. ...
    (microsoft.public.de.german.windows.terminaldienste)