php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 31.07.2008, 21:39  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.849
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard [Erledigt] Sessions und Sicherheit

Ich hab wol inzwischen uviel über entführte und gefälschte Sessions gelesen, sodass ich nicht weiß, an welcher Stelle noch Gefahr droht.

In einer Anwendung gibt es einen Memberbereich. Zum Login verlange ich Username und Passwort. Wenn das OK ist packe ich die Nummer der Zeile, in der der Loginname steht in meine session, also etwa so (stark vereinfachte Darstellung):

PHP-Code:
<?php
session_start
();

$sql "SELECT id FROM user WHERE user='$user' AND pw='$pw'";
$erg mysql_query($sql);
if(
mysql_num_rows($erg)) {
   
$row mysql_fetch_assoc($erg);
   
$_SESSION['id'] = $row['id'];
   
// mehr code
}
?>
Auf den Seiten im Memberbereich sehe ich, ob $_SESSION['id'] gesetzt ist, und kann dann damit bei Bedarf den zugehörigen User-Eintrag aus der Tabelle zupfen.

Ich vermute mal, dass ein Angreifer sich durch ordentliches Einloggen eine Session besorgen kann und dann sieht, welche variable da geführt ist. Wenn er die nun verändert, dann nimmt er ja eine fremde Identität an.

Muss ich hier zusätzliche Sicherheit schaffen, oder ist die Gefahr eher zu vernachlässigen? Mit mehr Sicherheit meine ich einen md5-hash, den ich mit in die Session lege und der auch in der Usertabelle steht. Auf den einzelnen Seiten schaue ich dann, ob id zum hash passt. Oder wie macht ihr das, wenn ihr da was macht?
Wolla ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 31.07.2008, 21:45  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Zitat:
Ich vermute mal, dass ein Angreifer sich durch ordentliches Einloggen eine Session besorgen kann
Die Session ist serverseitig. Wenn der entsprechende Ordner gesperrt ist sieht keiner die Sesssion Inhalte
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 31.07.2008, 21:47  
ElPresidente
Gast
 
Beiträge: n/a
Standard

Ein Problem weniger hast du, wenn du nach dem Login ein PHP: session_regenerate_id - Manual aufrufst.
 
Alt 31.07.2008, 22:04  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.849
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Die Session ist serverseitig. Wenn der entsprechende Ordner gesperrt ist sieht keiner die Sesssion Inhalte
Ich denke, das wird in einem Cookie beim Client abgelegt?
Wolla ist offline  
Alt 31.07.2008, 22:06  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Nur die Session ID
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 31.07.2008, 22:08  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.849
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

@ElPresidente
Wenn UserA sich anmeldet und in seinem Cookie $_SESSION['id'] = 4711 drin stehen hat, und diesen Cookie nun manipliert und 4812 reinpackt, dann tritt er unter falsche Identität auf. Da nützt es mi auch wenig, wenn ich die Sessio-ID ndere, weil ja der Inhalt gleich bleibt.

Meine Frage bezog sich darauf, ob das überhaupt praktisch machbar ist, solche Session-Inhalte zu fälschen.
Wolla ist offline  
Alt 31.07.2008, 22:09  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.849
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Nur die Session ID
Ah OK, dann ist klar, dass ich das falsch verstanden habe. Dann reicht es, die SessionID von Zeit zu Zeit umzuhängen.
Wolla ist offline  
Alt 31.07.2008, 22:15  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Zitat:
Wenn UserA sich anmeldet und in seinem Cookie $_SESSION['id'] = 4711 drin stehen hat, und diesen Cookie nun manipliert und 4812 reinpackt, dann tritt er unter falsche Identität auf.
Hier gilt das Prinzip der Wahrscheinlichkeit: Durch die große Zeichenlänge des Sessionstrings ist die Wahrscheinlichkeit sehr gering, dass die ID einer gleichzeitig aktiven Session erraten werden kann. 2 Faktoren unterlaufen dieses Prinzip:
1/ GET Parameter als gültige Session ID (können bspw. aus einem Serverlog, einem unachtsam versendeten URL Link oder einer präparierten Phishing Mail stammen). ElPresidente's Lösung bezog sich bspw. auf die Phishing Variante.
2/ Zu lange oder unbegrenze Lebenszeit von Session Cookies. Deshalb Timeout Cookies dem Luxus 'angemeldet bleiben' vorzuziehen
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (31.07.2008 um 22:18 Uhr).
nikosch ist offline  
Alt 31.07.2008, 22:20  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.849
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Wie schon gesagt, Denkfehler meinerseits. Man liest immer, dass 'die Sessionvariablen im Header übertragen werden', und in mir entstand das (falsche) Bild, dass alle Sessioninhalte beim User schlummern.
Wolla ist offline  
Alt 31.07.2008, 22:43  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Zitat:
Man liest immer, dass 'die Sessionvariablen im Header übertragen werden
Wo liest man das? Die Cookieinhalte werden beim Request übertragen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch 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
Erfahrung mit Sessions ( Sicherheit ) GELight PHP Tipps 2006 6 11.08.2006 17:55
2 Sessions Kein Genie PHP Tipps 2006 8 21.07.2006 15:45
[Erledigt] probleme mit sessions PHP Tipps 2007 1 17.11.2005 10:43
[Erledigt] Nach Einfügugng der Sessions funktioniert mein Program nicht PHP-Fortgeschrittene 1 02.10.2005 06:13
Sessions! DER_Brain PHP Tipps 2005-2 5 30.06.2005 14:51
2 Sessions? PHP Tipps 2005 5 29.04.2005 19:04
[Erledigt] [PHP5 / W2k3 / IIS] Sessions funktionieren nicht PHP-Fortgeschrittene 2 02.04.2005 00:39
Sessions lomtas PHP Tipps 2005 2 23.03.2005 10:30
Problem mit Sessions seit Upgrade auf PHP 4.3.10 PHP Tipps 2005 7 09.03.2005 01:29
Proble mit Sessions PHP Tipps 2005 7 07.02.2005 17:42
IE der die sessions nicht so akzeptiert wie er soll robo47 Off-Topic Diskussionen 0 27.01.2005 11:26
Probleme mit Sessions PHP Tipps 2005 2 23.01.2005 12:30
Sicherheit von Sessions Mano PHP Tipps 2004-2 7 30.11.2004 15:20
[Erledigt] Usermanagement mit Sessions - Sicherheitsprobleme ? PHP Tipps 2004 0 30.06.2004 09:49
[Erledigt] Sessions, sessions und nochmal sessions PHP-Fortgeschrittene 0 06.06.2004 00:36

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php sessions sicherheit, php session zeichenlänge, sessions php sicherheit

Alle Zeitangaben in WEZ +1. Es ist jetzt 12:38 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