php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.03.2006, 18:31  
Erfahrener Benutzer
 
Registriert seit: 30.10.2004
Beiträge: 160
Jacks Rache
Standard Problem mit PHPSESSID

Hallo.

Ich habe einen kleinen Login-Skript gebastelt, das an sich auch funktioniert.

Doch, da gibt es ein Problem: Wenn die Session ablaufen sollte, wird man automatisch auf eine andere Seite weitergeleitet, von der man über einen Link wieder zum Login kommt. Nur gibt es da ein Problem. Wenn die Session abgelaufen ist und man nun auf den Link zur Login-Seite klickt, wird mit dem Link automatisch die PHPSESSID mitgegeben, obwohl ich das nicht möchte.

Wie kann ich das verhindern?


Noch mal zur Veranschaulichung: (wegen den vielen abstrakten Begriffen :P )

Session läuft ab -> Weiterleitung auf sessionende.php
sessionende.php: "Ihre Session ist abgelaufen. HIER (Link) geht es wieder zum Login."
Die URL von Link ("HIER") ist dann automatisch: www.seite.de/login.php?PHPSESSID=udwe83r9h32r29(usw.) statt nur www.seite.de/login.php
Jacks Rache ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.03.2006, 19:18  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Siehe php.ini Dort steht auch eine Bescheibung drin.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 18.03.2006, 20:09  
Erfahrener Benutzer
 
Registriert seit: 30.10.2004
Beiträge: 160
Jacks Rache
Standard

php.ini finden ist leichter gesagt, als getan.
Willst du mich nicht direkt aufklären?
Jacks Rache ist offline  
Alt 18.03.2006, 22:31  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

session.use_trans_sid

Aber wofür soll das gut sein?
xabbuh ist offline  
Alt 18.03.2006, 23:16  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Hi.

Es gibt ja zwei Möglichkeiten, dass die Session bereits abgelaufen ist: Entweder du prüft sie Session und kommst drauf, dass ein gespeicherter Zeitstempel einen zu kleinen Wert hat oder das Session-File existiert nicht mehr, weil der gc es inzwischen aufgeräumt hat.

Ist ersteres der Fall, kannst du die Session entweder direkt zerstören (nähere Infos dazu im Manual unter session_destroy()) oder, falls die Session weiterlaufen soll, löschst du einfach die zu löschenden Were aus der Session und vergibst mit session_regenerate_id(true) eine neue Session-ID. Vor der Weiterleitung nicht vergessen, die Session explizit zu speichern (session_write_close()).

Wenn letzteres der Fall ist (PHP hat die Session beendet sozusagen), dann hast du letztlich kein Problem,denn die Session-Daten existieren ja eh nicht mehr. Allerdings ist es prinzipiell angebracht, beim Start/Wiederaufnehmen der Session zu prüfen, ob es sich um den ersten Aufruf handelt oder einen Folgeaufruf und im Fall eines ersten Aufrufes erstmal eine neue Session-ID zu vergeben (auch wieder session_regenerate_id()). Andernfalls kann ein Angreifer einem der Benutzer deines Systems womöglich einen Link mit vordefinierter Session-ID unterjubeln, die das System dann für den Benutzer beibehält, auch wenn sich dieser dann einloggt. So kann der Angreifer dann einfach mit der ihm bekannten (weil von ihm vorbereiteten) ID auf die Sitzung aufspringen (Session-Fixation). Also beim Neutstart, sowie bei jedem Statuswechsel (Benutzer loggt sich ein) immer die Session-ID wechseln!

Basti
Basti ist offline  
Alt 19.03.2006, 00:54  
Erfahrener Benutzer
 
Registriert seit: 30.10.2004
Beiträge: 160
Jacks Rache
Standard

Ah! Vielen Dank für deinen Beitrag, Basti. Hat mir sehr geholfen!

Das heißt, wenn sich jemand einloggt, überprüfe ich am besten, ob schon eine Session vorhanden ist, und vergebe notfalls eine neue.

Hier ist mein Code:
PHP-Code:
<?php
  
if (session_id() != "")
    
session_regenerate_id();
?>
Das müsste eigentlich so hinhauen, denke ich. (Es sei denn, es hat jemand Einwände dagegen)
Jacks Rache ist offline  
Alt 19.03.2006, 02:13  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Ich vermute, session_id() ist noch nicht gesetzt, wenn session_start() noch nicht aufgerufen wurde, oder?

PHP-Code:
<?php

session_start
()

if (!isset(
$_SESSION['initiated'])) {
    
session_regenerate_id(true);
    
$_SESSION['initiated'] = true;
}
?>
Basti
Basti ist offline  
Alt 19.03.2006, 17:00  
Erfahrener Benutzer
 
Registriert seit: 30.10.2004
Beiträge: 160
Jacks Rache
Standard

Stimmt. Daran hatte ich nicht gedacht.
Vielen, vielen Dank!
Jacks Rache ist offline  
 


Themen-Optionen
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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Sessions Problem StephenKing PHP Tipps 2008 3 16.10.2007 08:30
Problem bei session Lifetime Cyberbob_at_tot PHP Tipps 2007 5 05.06.2007 17:47
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
[Erledigt] Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
Problem mit Weiterleitung PHP Tipps 2004-2 16 22.12.2004 17:49
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
[Erledigt] PHP Upload (Master Value/Local Value Problem) PHP-Fortgeschrittene 5 23.11.2004 07:21
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
[Erledigt] Problem mit Timestamp! PHP Tipps 2004 24 08.06.2004 19:51
Login Problem PHP Tipps 2004 4 04.06.2004 18:46
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
phpsessid, java phpsessid, phpsessid verhindern, php phpsessid, http://www.php.de/php-tipps-2006/38288-problem-mit-phpsessid.html, php problem \ihre session ist abgelaufen\, phpsessid in google suche, ?phpsessid verbieten php snippet, [phpsessid], phpsessid php.ini, php bei sessionende startseite, java phpsessid bekommen, login problem session ungültig ?, phpsessid immer automatisch mitgeben, phpsessid login problem, session phpsessid php, weiterleiten wenn session abgelaufen ist, session speichert nur phpsessid, login script phpsessid, phpsessid kaputt

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.