Seite 1 von 1
Usersession beibehalten
Verfasst: 11.04.2008 13:14
von rajiva
Hi all,
ich hab folgendes Problemchen.
In meinem Forum gibt es zwei Schaltflächen zum übersetzen von Deutsch nach Englisch und umgekehrt. Die Übersetzung erfolgt mit Google also per
http://translate.google.com/translate?u=[Forentopic]
Soweit so gut.
Die Übersetzung klappt prima, ABER sobald eine Seite übersetzt werden soll auf die nur registrierte Benutzer Zugriff haben schlägt die Übersetzung fehl und es wird die Loginseite angezeigt.
Ok dachte ich mir, klar Google hat keinen Zugriff auf private Foren und kann auch keine Cookies liefern, also geben wir der Anfrage die SID des Benutzers mit. Leider funktioniert auch das nicht.
Jetzt die Frage an die Profis hier

, gibt es eine Möglichkeit einer URL die Daten mitzugeben die Google als den angemeldeten User zugreifen lassen? Die SID allein scheint das Problem ja noch nicht zu lösen.
Wär schön wenn es hier eine Lösung gäbe.
Viele Grüße
Rajiva
Verfasst: 12.04.2008 20:59
von rajiva
Hi all,
hab ich im falschen Forum gepostet, oder ist das ein nicht lösbares Problem?
Ich meine es muss doch möglich sein irgend etwas an die URL anzuhängen um den registrierten Benutzer wieder einzuloggen, oder?
Wär schön wenn sich jemand dazu äußert. Wenn sowas nicht geht, tut's auch ein geht nicht.
Liebe Grüße
Rajiva
Verfasst: 12.04.2008 21:24
von Boecki91
Du könntest versuchen Google von der Abfrage auszunehmen, dazu müsstest du rausbekommen wie Google auf deine Seite zugreift und den Weg freischalten, allerdings wäre das ein starker Verlust der Sicherheit.
Verfasst: 12.04.2008 21:56
von rajiva
Hi,
Boecki91 hat geschrieben:Du könntest versuchen Google von der Abfrage auszunehmen, dazu müsstest du rausbekommen wie Google auf deine Seite zugreift und den Weg freischalten, allerdings wäre das ein starker Verlust der Sicherheit.
Google generell zugreifen lassen wäre in der Tat ein starker Verlust an Sicherheit. Viel lieber wäre mir ich könnte Google eine Session ID mit auf den Weg geben und die ist natürlich nur solange gültig wie der registrierte Benutzer online ist. Ich hab da auch schon versuche gemacht und die SID des angemeldeten Benutzers als Parameter an die URL angehängt. In der Sessions.php gibt es auch eine Abfrage dazu und soweit ich die verstehe wird versucht das Cookie zu lesen und wenn das fehlschlägt wird die SID aus der URL verwendet. Nur aus einem mir nicht bekannten Grund wird die SID, die google über die URL übergibt, nicht akzeptiert. Vielleicht weil die SID an die IP des "wahren" Benutzers gekoppelt ist?
Google über die SID des angemeldeten Benutzers zugreifen zu lassen ist dann zwar immer noch eine Sicherheitslücke, aber da das nur in der viewtopic.php erlaubt sein soll könnte ich damit leben. Zusätzlich könnte man noch den Referer abfragen und die SID ist ja auch nur solange gültig wie der "wahre" Benutzer angemeldet ist. Was meinst Du?
Liebe Grüße
Rajiva
Verfasst: 12.04.2008 22:04
von Boecki91
Den Referer zu fälschen ist kein Problem, das geht recht leicht sogar mit "Klick klick bunt"
Verfasst: 12.04.2008 22:09
von rajiva
Boecki91 hat geschrieben:Den Referer zu fälschen ist kein Problem, das geht recht leicht sogar mit "Klick klick bunt"
das ist richtig, aber man bräuchte ja auch noch die SID des angemeldeten Benutzers! An die kommt man nicht soooooo leicht ran!
Verfasst: 13.04.2008 00:41
von Pyramide
Im ACP unter
Allgemein -> Server-Konfiguration -> Sicherheit die Optionen
Überprüfung der Sitzungs-IP,
Browser prüfen und
X_FORWARDED_FOR-Kopfzeilen prüfen deaktivieren.
Du solltest dir aber im klaren sein, dass du damit dein Forum anfällig für
Session Hijacking machst. Sobald ein Benutzer (versehentlich oder aus Unwissen) einen Link mit Session-ID z.B. per ICQ oder E-Mail weitergibt, ist jeder Fremde sofort als dieser Benutzer eingelogt.
Verfasst: 13.04.2008 10:30
von rajiva
Hallo,
Pyramide hat geschrieben:Im ACP unter Allgemein -> Server-Konfiguration -> Sicherheit die Optionen Überprüfung der Sitzungs-IP, Browser prüfen und X_FORWARDED_FOR-Kopfzeilen prüfen deaktivieren.
ist das eine V3 Einstellung? Sorry hatte vergessen zu erwähnen dass bei mir noch 2.0.22 läuft.
Du solltest dir aber im klaren sein, dass du damit dein Forum anfällig für
Session Hijacking machst. Sobald ein Benutzer (versehentlich oder aus Unwissen) einen Link mit Session-ID z.B. per ICQ oder E-Mail weitergibt, ist jeder Fremde sofort als dieser Benutzer eingelogt.
Hmmmm, sind Session-ID's nicht nur solange gültig wie der Benutzer angemeldet ist und die ID in der Session Table steht?
Wenn ich das
Code: Alles auswählen
// session_id exists so go ahead and attempt to grab all
// data in preparation
//
$sql = "SELECT u.*, s.*
FROM " . SESSIONS_TABLE . " s, " . USERS_TABLE . " u
WHERE s.session_id = '$session_id'
AND u.user_id = s.session_user_id AND session_time > $expiry_time";
richtig verstehe sind Session ID's nur für die Zeit $expiry_time gültig. Das würde doch dann bedeuten, dass die SID nach "Cookie Einstellungen -> Sessionlänge [ Sekunden ]" nicht mehr gültig ist, richtig? Wen dem so ist müsste man die Zeit wohl recht kurz halten.
Zusätzlich würde ich den Referer abfragen, was zwar nicht sicher ist, aber zumindest versehentliches verlinken einschränkt. Ich denke das Problem ist eh nicht so kritisch, denn die Links werden zur laufzeit erzeugt und ein verlinken in einer eMail macht eigentlich keinen Sinn, denn jeder Beitrag enthält die Bilder zum übersetzen.
[ externes Bild ]
Liebe Grüße
Rajiva
Verfasst: 13.04.2008 14:24
von Pyramide
ist das eine V3 Einstellung? Sorry hatte vergessen zu erwähnen dass bei mir noch 2.0.22 läuft
Bei phpBB2 musst du die Prüfung im Quellcode entfernen, siehe KB:invalid_session
rajiva hat geschrieben:Hmmmm, sind Session-ID's nicht nur solange gültig wie der Benutzer angemeldet ist und die ID in der Session Table steht?
Ja. Allerdings läuft ein Chat ja in Echtzeit. Stell dir vor, Benutzer A ist im Forum eingelogt und möchte Benutzer B einen Beitrag zeigen. Also kopiert er die URL des Beitrages und fügt sie ins ICQ/MSNM/IRC/etc. Fesnter ein. Dabei entfernt er die Session-ID nicht aus der URL, weil er
- gar nicht weiß, wozu diese gut ist (das ist wohl bei 99% der nicht-Programmierer der Fall)
- oder nicht drauf achtet, dass in der URL eine Session-ID enthalten ist (Das ist selbst phpBB.de Teammitgliedern schom mehrmals passiert, da bei phpBB der allererste Seitenaurfuf immer Session-IDs enthält, egal ob Cookies aktiviert sind oder nicht).
Sobald Benutzer B diesen Link anklickt, ist er automatisch als Benutzer A eingelogt.
Verfasst: 13.04.2008 17:49
von rajiva
Pyramide hat geschrieben:Bei phpBB2 musst du die Prüfung im Quellcode entfernen, siehe KB:invalid_session
alles klar, werde ich mir nachher mal zu gemüte führen.
rajiva hat geschrieben:Stell dir vor, Benutzer A ist im Forum eingelogt und möchte Benutzer B einen Beitrag zeigen. Also kopiert er die URL des Beitrages ...
Ja und danke für die Erklärung! Ich denke damit muss ich dann leben, wobei das Forum recht speziell ist und es im Chat wohl eh keine Notwendigkeit gibt einen Beitrag zu verlinken. Hinzu kommt, dass der Benutzer der einen Beitrag verlinken will wohl auch nicht den Link hinter dem Übersetzungssymbol verwendet sondern vielmehr den den er in der Adresszeile des Browsers vorfindet. Ich werde das mal probieren und wenn es Probleme gibt lässt sich das ja schnell wieder rückgängig machen. Also erst mal vielen Dank für die Unterstützung!
Liebe Grüße
Rajiva