Hallo Community,
Ich habe 2 Logins 'Scripte' geschrieben, im Grunde sind sie gleich, nur das das eine Sessions, das andere Cookies benutzt. Ich hätte gerne einfach etwas Feedback zu den Scripten weil ich mich noch nicht so lange mit PHP beschäftige und nicht wirklich einschätzen kann ob sie 'sicher' sind.
Eins von beiden soll später mal mit einem Blogscript benutzt werden, allerdings nur als Singeluserlogin und über https.
Also hier sind die beiden Scripte, ich wäre über Verbesserungsvorschläge sehr dankbar:
Mit Keksen:
Und ohne Kekse:
LG,
Fabian
Ich habe 2 Logins 'Scripte' geschrieben, im Grunde sind sie gleich, nur das das eine Sessions, das andere Cookies benutzt. Ich hätte gerne einfach etwas Feedback zu den Scripten weil ich mich noch nicht so lange mit PHP beschäftige und nicht wirklich einschätzen kann ob sie 'sicher' sind.
Eins von beiden soll später mal mit einem Blogscript benutzt werden, allerdings nur als Singeluserlogin und über https.
Also hier sind die beiden Scripte, ich wäre über Verbesserungsvorschläge sehr dankbar:
Mit Keksen:
PHP Code:
<?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
PHP Code:
<?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
Fabian
Comment