php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.10.2004, 19:39  
Gast
 
Beiträge: n/a
Standard [Erledigt] Datenschutz und Sessions

Hallo zusammen,

Ich habe folgendes Problem:
Ich habe mir ein LoginSystem auf Basis von MySql und Sessions
gebastelt. Das System funktioniert im Prinzip auch, doch einige
Freunde von mir müssen, um sich einzuloggen, den Datenschutz
nach unten setzen oder meine Seite unter "Zugelassne Seiten"
aufnehmen. Das ist leider nicht der Sinn der Sache.

Vor 1-2 Wochen wurde mir bereits geschrieben, dass ich das
mit der Session ID SID in der Url umgehen kann, sodass sich
jeder, egal mit welchem Firewall einloggen kann.

So, mein LoginSystem funtz folgendermaßen:

Code:
<?php
  session_start(); 
  include ("mysql.php"); 

  $sql = "SELECT 
            id, 
            nick, 
            pw, 
            mail, 
            rang 
            FROM
            ****
            WHERE
            nick = '".$_REQUEST['nick']."'
              AND 
            pw = MD5('".$_REQUEST['pw']."')
         "; 
  $result = mysql_query($sql) or die(mysql_error());
  if (mysql_num_rows($result)) 
   { 
    while ($row = mysql_fetch_array($result))
     { 
      // Sessionvariablen erstellen und registrieren 
      $_SESSION["ms_id"]   = $row["id"];
      $_SESSION["ms_nick"] = $row["nick"];
      $_SESSION["ms_mail"] = $row["mail"];
      $_SESSION["ms_rang"] = $row["rang"];
       header ("Location: intern.php");
      exit; // sicherstellen das nichts mehr ausgeführt wird 
     } 
   }
   else {
   print "Das Passwort ist falsch!
";
   print "<a href=\"login.php\">Zurück!</a>";
   }
 ?>
Erklärung:
Hier werden die eingegebenen Daten verwertet und die
Sessionvariablen werden registriert, damit sie auf jeder Seite
zur Verfügung stehen.

..weiter...

Code:
<?php
session_start (); 
if (!isset ($_SESSION["ms_id"]))
{ 
  header ("Location: login.php");
} 
?>
Dies hier include ich in jede Seite, die geschützt werden soll.
es sol festgestellt werden, ob der User eingeloggt ist.
Soweit alles ganz einfach.

..weiter..

Nun, warum hat das Script Probleme mit dem Datenschutz und wie
kann ich das ändern bzw. wie mach ich das mit der SID in der URL?

Danke im Voraus

Gruß
Snow :wink:
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 14.10.2004, 08:15  
Gast
 
Beiträge: n/a
Standard

Sagen wir mal, ein Bekannter von dir ist auf deiner Webseite eingeloggt
und möchte dir zeigen, was er auf der Seite gefunden hat. Jetzt liegt doch
nahe, das der Bekannte seine URL inkl. Session aus dem Browser kopiert und
Sie die dir per Mail oder ICQ schickt (Er weiß ja nicht wozu diese komischen
zeichen in der URL da sind). Wenn du jetzt diese URL aufrufst,
bist du natürlich als dein Bekannter eingeloggt und kannst evtl. seine
Daten anzeigen lassen. Um dies zu umgehen, kannst du z.B. Cookies
oder zumindest eine IP Abfrage verwenden, die auch diese Sicherheitslücke schließt.
  Mit Zitat antworten
Alt 14.10.2004, 08:21  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von 2oopuls
Sagen wir mal, ein Bekannter von dir ist auf deiner Webseite eingeloggt [...]

Wenn du jetzt diese URL aufrufst,
bist du natürlich als dein Bekannter eingeloggt und kannst evtl. seine
Daten anzeigen lassen. Um dies zu umgehen, kannst du z.B. Cookies
oder zumindest eine IP Abfrage verwenden, die auch diese Sicherheitslücke schließt.
Kekse verhindern das.

Die "IP-Abfrage" verhindert das nicht.

Setzen wir mal den Fall an, daß der Bekannte in der selben Firma arbeitet und alle gemeinsam über einen Router ins Internet gehen... Dann surft die janze Firma mit der selben IP...
  Mit Zitat antworten
Alt 14.10.2004, 08:26  
Gast
 
Beiträge: n/a
Standard

Logisch, deswegen schreibe ich ja "zumindest" eine IP prüfung.
  Mit Zitat antworten
Alt 14.10.2004, 08:29  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von 2oopuls
Logisch, deswegen schreibe ich ja "zumindest" eine IP prüfung.
Das "hilft" genauso wie ein Magenbitter gegen Magenkrebs "hilft".
  Mit Zitat antworten
Alt 14.10.2004, 08:33  
Gast
 
Beiträge: n/a
Standard

Du meinst eher, das es genauso wenig hilft wie eine Cookie Prüfung,
wenn die Betreffenden hinter einem Router sitzen und keine Cookies akzeptieren. Es gibt keine Perfekte Lösung.
  Mit Zitat antworten
Alt 14.10.2004, 08:36  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von 2oopuls
Du meinst eher, das es genauso wenig hilft wie eine Cookie Prüfung,
wenn die Betreffenden hinter einem Router sitzen und keine Cookies akzeptieren. Es gibt keine Perfekte Lösung.
Nein, das meine ich nicht. Wer keine Kekse haben will, der muß sich eben damit abfinden, daß sein Account früher oder später mal geknackt wird, wenn er die session_id innerhalb der Verfallszeit weitergibt.
  Mit Zitat antworten
Alt 14.10.2004, 17:38  
Gast
 
Beiträge: n/a
Standard

Is dass denn normal, dass man sich da nicht einloggen kann.
Oder an was kann das liegen? Am Server? Am Script?
  Mit Zitat antworten
Alt 14.10.2004, 18:11  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Snowspeedy
Is dass denn normal, dass man sich da nicht einloggen kann.
Oder an was kann das liegen? Am Server? Am Script?
Am Script.

Das ist falsch:
PHP-Code:
<?php
     
// Sessionvariablen erstellen und registrieren 
      
$_SESSION["ms_id"]   = $row["id"]; 
      
$_SESSION["ms_nick"] = $row["nick"]; 
      
$_SESSION["ms_mail"] = $row["mail"]; 
      
$_SESSION["ms_rang"] = $row["rang"]; 

session_write_close(); # vorzeitiges Schreiben der Sessiondaten

# falscher Location Header
       
header (sprintf('Location: http://%s/intern.php?%s'$_SERVER['SERVER_NAME'], SID)); 
# 1. Location erwartet einen absoluten URL
# 2. Die weitergabe von session_name und _id muß auch dann gesichert werden,
# wenn der Client keinen Keks haben wollte
# Dazu dient die Konstante SID

      
exit; // sicherstellen das nichts mehr ausgeführt wird 
?>
  Mit Zitat antworten
Alt 14.10.2004, 21:13  
Gast
 
Beiträge: n/a
Standard

Ok, wa genau bedeutet diese "sprintf" ?

Und warum muss "$_SERVER['SERVER_NAME']" und "SID" dahinter?
Du hattest geschrieben, dass etwas sichergestellt wird.

Gruß
Snow
  Mit Zitat antworten
Antwort


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
2 Sessions Kein Genie PHP Tipps 2006 8 21.07.2006 15:45
sessions ip gebunden ? notyyy PHP Tipps 2006 14 19.01.2006 09:07
Sessions verfallen sofort der.Chris PHP Tipps 2006 4 10.01.2006 18:46
[Erledigt] probleme mit sessions PHP Tipps 2007 1 17.11.2005 10:43
Nach Einfügugng der Sessions funktioniert mein Program nicht PHP-Fortgeschrittene 1 02.10.2005 06:13
Module im Eingenbau die 2te (SESSIONS and Security) ChewyF5 PHP-Fortgeschrittene 8 05.08.2005 11:16
[Erledigt] Prob mit SESSIONS PHP-Fortgeschrittene 13 29.07.2005 23:03
Sessions! DER_Brain PHP Tipps 2005-2 5 30.06.2005 14:51
2 Sessions? PHP Tipps 2005 5 29.04.2005 19:04
Sessions lomtas PHP Tipps 2005 2 23.03.2005 10:30
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
Sessions und Datenschutz? PHP Tipps 2004 5 05.10.2004 13:55
[Erledigt] Usermanagement mit Sessions - Sicherheitsprobleme ? PHP Tipps 2004 0 30.06.2004 09:49
Sessions, sessions und nochmal sessions PHP-Fortgeschrittene 0 06.06.2004 00:36

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
datenschutz sessions

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:14 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.