mysqldumper
-


Hinweise


Antwort
 
LinkBack (1) Themen-Optionen Thema durchsuchen Thema bewerten
Alt 20.01.2008, 19:05   1 links from elsewhere to this Post. Click to view. #1
TP-Moderator
 
Benutzerbild von Levis
 
Registriert seit: Jul 2001
Ort: Regensburg / Landshut
Levis ist ein richtiges Arbeitstier - DANKELevis ist ein richtiges Arbeitstier - DANKELevis ist ein richtiges Arbeitstier - DANKELevis ist ein richtiges Arbeitstier - DANKELevis ist ein richtiges Arbeitstier - DANKELevis ist ein richtiges Arbeitstier - DANKE

Session Timeout


Hi,

Wie realisiert am geschicktesten einen Session Timeout?
Also wenn der User x Sekunden inaktiv war (also keine Seite geladen hat), soll die Session gelöscht werden und der User auf die Loginseite geleitet werden...

Ich habe gesehen, dass es da die Einstellung "session.gc_maxlifetime" gibt, aber trotz der voreingestellten 1440 Sekunden geht die Session nach der angegebenen Zeit nicht verloren - von daher werd ich wohl was falsch verstehen

Vielen Dank im Voraus,
Levis
__________________
"Programmieren ist eine Kunst"

» Fahrtenbuch genial! ist endlich da! Steuern sparen so einfach wie noch nie!
» QuickShot 3.0 ist endlich da!
» Schöner einkaufen


Red Gold Green - good things come to those who wait...
Levis ist offline   Mit Zitat antworten


Alt 20.01.2008, 21:25   #2
TP-Moderator
 
Benutzerbild von Rizzo
 
Registriert seit: Aug 2004
Ort: Kaiserslautern
Rizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine User
Hallo Levis,

das gc in session.gc_maxlifetime ist der Garbage Collector. Quasi die interne Mülldeponie, die sich von Zeit zu Zeit selbst reinigt. Diese maxlifetime gibt die Zeit an, wie lange eine erloschene Session Datei (wen ein User den Browser schließt) erhalten bleibt ehe sie vom Server gelöscht wird. Diese Einstellung hält also keine Session am Leben, sondern entfernt nur die Leiche einer Session nach einer gewissen Zeit. So habe ich das mit dem GC zumindest verstanden.

Das was Du machen musst ist eine manuelle Möglichkeit zu erschaffen, um eine Session zu löschen. Hier mal ein Beispiel als Idee
PHP-Code:
// Session starten
session_start();
// Wenn keine Session existiert einen Timeout setzen
if (!isset( $_SESSION['timeout'] ))
{
    
$_SESSION['timeout'] = time();
}

// Daten, z.B. Auth-Daten, in der Session ablegen
$_SESSION['benutzername'] = $benutzer;
$_SESSION['passwort'] = $passwort;

// Pruefen ob die Session noch aktiv ist (60 Sekunden)
if ($_SESSION['timeout']+60 <= time())
{
    
// Session loeschen und zum Login umleiten
    
$_SESSION = array();
    
header'location: login.php' );

Es ist wichtig die Session nicht mit unset( $_SESSION ); zu löschen, weil das unset() das Sessionmanagement komplett abschaltet!
Zusätzlich zur zeitlichen Überprüfung kannst Du noch den Referrer o.ä. mit einbeziehen.
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
.
Rizzo ist offline   Mit Zitat antworten
Alt 21.01.2008, 09:02   #3
DSB
TP-Veteran
 
Benutzerbild von DSB
 
Registriert seit: Mar 2005
Ort: Weyhe
DSB hilft, wo's gehtDSB hilft, wo's gehtDSB hilft, wo's gehtDSB hilft, wo's geht
Zitat:
Zitat von Rizzo Beitrag anzeigen
PHP-Code:
// Daten, z.B. Auth-Daten, in der Session ablegen
$_SESSION['passwort'] = $passwort
Das würde ich nicht machen, da dies eine fette Sicherheitslücke ist.
__________________
Gruß, DSB
Einfaches Backup/ Restore Deiner MySQl-Datenbank
DSB ist offline   Mit Zitat antworten
Alt 21.01.2008, 10:22   #4
TP-Veteran
 
Registriert seit: May 2006
marc22 bringt sich richtig ein
Zitat:
Es ist wichtig die Session nicht mit unset( $_SESSION ); zu löschen, weil das unset() das Sessionmanagement komplett abschaltet!
Das Session-Management wird mitnichten abgeschaltet. Das Session-Array für das aktuelle Skript wird lediglich gelöscht, man kann es aber einfach so weiter benutzen.

Zitat:
Das würde ich nicht machen, da dies eine fette Sicherheitslücke ist.
Wieso das?

EDIT: @Lewis: Du suchst diese Einstellung: "session.cookie_lifetime". 0 -> Session-Cookie bleibt bis zum SChließen des Browsers, ansonsten in Sekunden..
__________________
...Meine Meinung

1984
marc22 ist offline   Mit Zitat antworten
Alt 21.01.2008, 10:35   #5
TP-Moderator
 
Benutzerbild von Rizzo
 
Registriert seit: Aug 2004
Ort: Kaiserslautern
Rizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine User
Zitat:
Zitat von DSB Beitrag anzeigen
Das würde ich nicht machen, da dies eine fette Sicherheitslücke ist.
War doch nur ein Beispiel und nicht zur direkten Übernahme gedacht. Aber Levis weiß schon das er zumindest noch md5() benutzen sollte.

Zitat:
Zitat von marc22 Beitrag anzeigen
Das Session-Management wird mitnichten abgeschaltet. Das Session-Array für das aktuelle Skript wird lediglich gelöscht, man kann es aber einfach so weiter benutzen.
Da liest sich für mich dieser Ausschnitt aus dem Manual aber anders. Auch Google spuckt dazu 'ne ganze Menge Meinungen aus die das untermauern.
Mit "komplette" Session-Management habe ich mich vielleicht unglücklich ausgedrückt - es ist "nur" nicht mehr möglich etwas in der Superglobalen $_SESSION abzulegen.
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
.
Rizzo ist offline   Mit Zitat antworten
Alt 21.01.2008, 10:57   #6
TP-Veteran
 
Registriert seit: May 2006
marc22 bringt sich richtig ein
Laut Deiner Quelle:
Zitat:
Die Funktion session_unset() löscht alle Session-Variablen, die gegenwärtig registriert sind.
Zitat:
Heben Sie NICHT die Registrierung der gesamten $_SESSION mit unset($_SESSION) auf, weil dies die Registrierung von Variablen durch die Superglobale $_SESSION deaktivieren würde.
Bezieht sich nur auf den aktuellen Skripaufruf.
Probier es doch mal aus
Da steht nichts davon, dass die eigentliche Session gelöscht wird.


Zitat:
Das Session-Array für das aktuelle Skript wird lediglich gelöscht, man kann es aber einfach so weiter benutzen.
Was aus dem Satz nicht hervor gegangen ist: Man kann das Array erst beim nächsten Skript-Aufruf wieder benutzen.
__________________
...Meine Meinung

1984

Geändert von marc22 (21.01.2008 um 11:04 Uhr).
marc22 ist offline   Mit Zitat antworten
Alt 21.01.2008, 11:10   #7
TP-Moderator
 
Benutzerbild von Rizzo
 
Registriert seit: Aug 2004
Ort: Kaiserslautern
Rizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine User
Gemeint ist folgendes:
Wenn man unset() auf eine einzelne Session Variable, z.B. $_SESSION['vorname'], anwendet, löscht man den Inhalt dieser einen Variable: unset( $_SESSION['vorname'] ); - was absolut korrekt ist.

Benutzt man aber unset() auf die Superglobale $_SESSION, also unset( $_SESSION ), leert man die Superglobale und sperrt sie dabei, so daß man auf Folgeseiten (oder der gleichen Seite) nichts mehr in dieser Session ablegen kann. Man muß also die komplette Session neu starten um sich eine neue SID zu holen und evtl noch benötigte Daten in der Session schreiben.
$_SESSION = array(); hingegen leert alle Variablen in der Session, erhält aber die serverseitig gespeicherten Session Information, wie etwa die SID, etc.

So steht es zumindest in der Doku und darüber findet man diverse Bestätigungen, wenn man Google bemüht. Jetzt verständlicher ausgedrückt?
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
.
Rizzo ist offline   Mit Zitat antworten
Alt 21.01.2008, 11:47   #8
TP-Veteran
 
Registriert seit: May 2006
marc22 bringt sich richtig ein
Zitat:
Benutzt man aber unset() auf die Superglobale $_SESSION, also unset( $_SESSION ), leert man die Superglobale und sperrt sie dabei, so daß man auf Folgeseiten (oder der gleichen Seite) nichts mehr in dieser Session ablegen kann.
Falsch


EDIT: Was verstehst Du unter "komplette Session neu starten"?
__________________
...Meine Meinung

1984
marc22 ist offline   Mit Zitat antworten
Alt 23.01.2008, 17:50   #9
TP-Moderator
 
Benutzerbild von Levis
 
Registriert seit: Jul 2001
Ort: Regensburg / Landshut
Levis ist ein richtiges Arbeitstier - DANKELevis ist ein richtiges Arbeitstier - DANKELevis ist ein richtiges Arbeitstier - DANKELevis ist ein richtiges Arbeitstier - DANKELevis ist ein richtiges Arbeitstier - DANKELevis ist ein richtiges Arbeitstier - DANKE
session.cookie_lifetime reicht wohl laut diversen Aussagen und Tests nicht aus.

Danke Rizzo für den Tipp
__________________
"Programmieren ist eine Kunst"

» Fahrtenbuch genial! ist endlich da! Steuern sparen so einfach wie noch nie!
» QuickShot 3.0 ist endlich da!
» Schöner einkaufen


Red Gold Green - good things come to those who wait...
Levis ist offline   Mit Zitat antworten
Alt 23.01.2008, 21:26   #10
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
unset arbeitet in dem Fall unzuverlässig, ich denk das das eher ein Problem von php ist.

Ich überschreibe Arrays grundsätzlich mit $a = array(); was immer zuverlässig ist. Es ist auch richtig, das selber zu machen, jedes OnlineBanking macht das auch sehr radikal nach ca. 30 sek.
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 24.01.2008, 20:50   #11
TP-Moderator
 
Benutzerbild von Levis
 
Registriert seit: Jul 2001
Ort: Regensburg / Landshut
Levis ist ein richtiges Arbeitstier - DANKELevis ist ein richtiges Arbeitstier - DANKELevis ist ein richtiges Arbeitstier - DANKELevis ist ein richtiges Arbeitstier - DANKELevis ist ein richtiges Arbeitstier - DANKELevis ist ein richtiges Arbeitstier - DANKE
Kann man die Session statt mit $_SESSION = array(); nicht auch über session_destroy() löschen? Wo ist der Unterschied und warum und wann wird was angewendet?
__________________
"Programmieren ist eine Kunst"

» Fahrtenbuch genial! ist endlich da! Steuern sparen so einfach wie noch nie!
» QuickShot 3.0 ist endlich da!
» Schöner einkaufen


Red Gold Green - good things come to those who wait...
Levis ist offline   Mit Zitat antworten
Alt 25.01.2008, 02:54   #12
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Erstmal laut Doku:
Zitat:
Verwenden Sie session_unset() nur bei veraltetem Code, bei dem nicht $_SESSION benutzt wird.
Wenn man mit $_SESSION arbeitet, dann das löschen aller Session Vars halt wie bei Steffen: $_SESSION = array();

session_destroy() verwendet man um die Session-Datei, die die im session.save_path auf dem Webserver gespeichert ist, zu löschen.

Die sicherste Methode die Session incl. vom Cookie zu löschen ist die, die bei session_destroy im Example#1 angegeben wird.
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE || PS Kniffe
emCalculator 1.0



webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Session Timeout Session Timeout
« FYI: Email Injection | das hier gecodete Newssystem »

LinkBacks (?)
LinkBack to this Thread: http://www.traum-projekt.com/forum/19-traum-dynamik/106731-session-timeout.html
Erstellt von For Type Datum
Session Timeout - Space² This thread Refback 09.07.2008 18:37

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:11 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67