Peter Strucks: Session - ich weiß nicht mehr weiter

Beitrag lesen

hi,

In den letzten Tagen wurde hier soviel über Sessions, Sicherheit und Loginsysteme diskutiert, das es den meisten hier denk ich schon langsam zum Hals raushängt.

Okay.

session_start();
$query="SELECT user,pwd,bereich,userid FROM all_user WHERE user='$nick'";

Woher kommt $nick?

Wie gesagt $nick kommt von einem Formular das per POST übergeben wurde, wurde aber schon mysql_real_escape_string() drauf angewendet.

$num=mysql_query($query,$c) or die (mysql_error());
$row = mysql_fetch_array($num);
if(!$row){
header('Location: fehler.php');
die();

Abgesehen davon, dass ein Location-Header per Definition einen absoluten URL inkl. Protokollangabe erfordert -
Warum eigentlich immer Umleiten?
Warum nicht die Fehlermeldung innerhalb der gleichen Ressource ausgeben?

Ich habe eine extra Seite für Feherl anzeigen eigendl. kommt noch ein Paramenter hintendran und fehler.php checkt, welche Meldung er ausgeben soll.

Warum wieder Umleiten ...?

Formular -> loginskript -> weiter.php

Warum denn nicht was soll den sonst passieren? In der Loginskript Datei wird kein (X)HTML ausgegeben.

// weiter.php sieht so aus:

session_start ();
if(!isset ($_SESSION["user_id"])){
header ("Location: index.php");
die();

Warum wieder Umleiten ...?

Falls die $_SESSION["user_id"] nicht vorhanden ist wird zurück zur Loginseite weitergeleitet.(Mit Parameter für Fehlermeldung)

}elseif($_SESSION['IP'] != $_SERVER['REMOTE_ADDR']) {

Dass die IP zwischen mehreren Requests des Nutzers nicht zwangsläufig gleich bleiben muss, wurde schon oft erwähnt - AOL bspw. hat eine ganze Proxyfarm, über die es die Anfragen seiner Nutzer weiterleitet.

Okay dann kass ich das weg.

Dann vergleiche ich die Session Variablen mit den $r_x variablen.

Warum denn schon wieder?
Du hast sie auf der vorherigen Seite doch erst in die Session reingeschrieben?

Weil ich doch testen muss ob in der Session das ganze wirklich enthalten ist. Sollte ein wenig dagegen absichern das Leute die den Link kriegen au die Seite können ohne sich vorher einzuloggen.

Was kann ich denn deiner/euer Meinung nach tun um meine Sicherheitswünsche zu erfüllen?

mfg

Peter Strucks