Hallo zusammen
Ich hatte bereits einen Thread eröffnet, aber jetzt habe ich ein konkreteres Problem... und zwar ist mein Session handling total unsicher...
die index.php sieht folgendermassen aus:
die login.php wird mittels include in die index.php eingefügt und sieht folgendermassen aus:
ich dachte das sei so einigermassen sicher, habe aber einmal zum spass ein kleines Script geschrieben das ich hack.php nannte und das sieht folgendermassen aus:
um zu prüfen ob jemand eingeloggt ist verwende ich jeweils
weil die $Sess_Id ja nur gesetzt werden sollte, wenn das Passwort richtig eingegeben wurde... zu meinem entsetzen bin ich aber mittels diesen "hacks" auch eingeloggt... kann mir irgendjemand einen tipp geben wie ich verhindern kann, dass sich nicht andere Personen mittels so einem scriptlein zugang in den registrierten bereich verschaffen??
Ich hatte bereits einen Thread eröffnet, aber jetzt habe ich ein konkreteres Problem... und zwar ist mein Session handling total unsicher...
die index.php sieht folgendermassen aus:
Code:
session_start();
$logout = $_GET['logout'];
if($logout == 1)
{
session_regenerate_id();
session_destroy();
}
$Sess_Id = $_SESSION['Session_Id'];
$Sess_eingeloggt = $_SESSION['eingeloggt'];
$Sess_User_Id = $_SESSION['User_Id'];
$Sess_User_Name = $_SESSION['User_Name'];
$Sess_User_Vorname = $_SESSION['User_Vorname'];
die login.php wird mittels include in die index.php eingefügt und sieht folgendermassen aus:
Code:
$EMail = $_POST["EMail_login"];
$Passwort = $_POST["Passwort_login"];
if(get_magic_quotes_gpc())
{
$Passwort = stripslashes($_POST["Passwort_login"]);
$EMail = stripslashes($_POST["EMail_login"]);
}
else
{
$EMail = $_POST["EMail_login"];
$Passwort = $_POST["Passwort_login"];
}
if($EMail && $Passwort)
{
$Query = sprintf("select * from benutzer where EMail = '%s'",
mysql_real_escape_string($EMail));
$Eintragen = mysql_query($Query);
$row = mysql_fetch_row($Eintragen);
if($row[1] == md5($Passwort))
{
$_SESSION['Session_Id'] = session_id();
$_SESSION['User_Id'] = $row[0];
$_SESSION['User_Name'] = $row[3];
$_SESSION['User_Vorname'] = $row[4];
$Sess_Id = $_SESSION['Session_Id'];
$Sess_User_Id = $_SESSION['User_Id'];
$Sess_User_Name = $_SESSION['User_Name'];
$Sess_User_Vorname = $_SESSION['User_Vorname'];
}
}
ich dachte das sei so einigermassen sicher, habe aber einmal zum spass ein kleines Script geschrieben das ich hack.php nannte und das sieht folgendermassen aus:
Code:
<?php
session_start();
$_SESSION['Session_Id'] = session_id();
?>
<form action="index.php" method="post">
<input type="submit" name="submit" value="absenden" />
</form>
um zu prüfen ob jemand eingeloggt ist verwende ich jeweils
Code:
$Sess_Id == session_id()