C
Clownish
none
Hey ich habe 2 Loginscripte in Php geschrieben, einmal Session basierend, einmal Cookie basierend. Jetzt wüsste ich gerne welches von beiden wie sicher ist, und welchem ich den Vorzug geben sollte.
Sessions:
Und das gleiche mit Cookies:
Wäre über Verbesserungsvorschläge etc dankbar.
Lg,
Fabian
Sessions:
PHP:
<?php
error_reporting(E_ALL);
session_start();
require_once('config.php');
function randomkeys($length)
{
$pattern = "123456789abcdefghijklmnopqrstuvwxyzQWERTZUIPASDFGHJKLYXCVBNM";
for($i=0;$i<$length;$i++)
{
$key .= $pattern{rand(0,59)};
}
return $key;
}
mysql_connect(HOST,USER,PASS) && mysql_select_db(DB);
$result = mysql_query('SELECT Name, Password, cookie FROM users WHERE ID = 1') OR die(mysql_error());
$row = mysql_fetch_array($result);
$userpass = $_POST['userpass'];
$username = $_POST['username'];
mysql_free_result($result);
if($_SESSION['login'] == MD5($row['cookie'].$row['Name'].$_SERVER['REMOTE_ADDR']))
{
echo 'Logged In';
}
else
{
if ($username == $row['Name'] && MD5($userpass) == $row['Password'])
{
$atm = randomkeys(32);
$sessiondata = MD5($atm.$username.$_SERVER['REMOTE_ADDR']);
$_SESSION['login'] = $sessiondata;
mysql_query("UPDATE users SET cookie = '".$atm."' WHERE id='1';");
echo 'Logged In, Cookie set';
}
else
{
?>
Bitte loggen sie sich ein:<br><br>
<form action="<?php echo $SCRIPT_NAME ?>" method="post">
<input type="text" name="username" /><br>
<input type="password" name="userpass" /><br>
<input type="submit" />
</form>
<?php
die;
}
}
?>
Hier gehts weiter
Und das gleiche mit Cookies:
PHP:
<?php
//error_reporting(E_ALL);
require_once('config.php');
function randomkeys($length)
{
$pattern = "123456789abcdefghijklmnopqrstuvwxyzQWERTZUIPASDFGHJKLYXCVBNM";
for($i=0;$i<$length;$i++)
{
$key .= $pattern{rand(0,59)};
}
return $key;
}
mysql_connect(HOST,USER,PASS) && mysql_select_db(DB);
$result = mysql_query('SELECT Name, Password, cookie FROM users WHERE ID = 1') OR die(mysql_error());
$row = mysql_fetch_array($result);
$userpass = $_POST['userpass'];
$username = $_POST['username'];
mysql_free_result($result);
if(isset($_COOKIE['login']) && $_COOKIE['login'] == MD5($row['cookie'].$row['Name'].$_SERVER['REMOTE_ADDR']))
{
echo 'Logged In';
}
else
{
if ($username == $row['Name'] && MD5($userpass) == $row['Password'])
{
ob_start();
$atm = randomkeys(32);
$keks = MD5($atm.$username.$_SERVER['REMOTE_ADDR']);
setcookie('login', $keks);
mysql_query("UPDATE users SET cookie = '".$atm."' WHERE id='1';");
echo 'Logged In, Cookie set';
ob_end_flush();
}
else
{
?>
Bitte loggen sie sich ein:<br><br>
<form action="<?php echo $SCRIPT_NAME ?>" method="post">
<input type="text" name="username" /><br>
<input type="password" name="userpass" /><br>
<input type="submit" />
</form>
<?php
die;
}
}
?>
Hier gehts weiter
Wäre über Verbesserungsvorschläge etc dankbar.
Lg,
Fabian