Moin,
hab mir ein Loginverfahren überlegt, mit Inspiration durchs Forum, und wollt euch mal bitten drüberzuschaun, ob man das als sicher bezeichnen könnte.
Beim Anmelden wird das Passwort mit sha1 gehast. Wenn jemand das gehaste Passwort abfängt könnte er sich nicht einloggen, da das Passworteingabefeld nicht 40 Buchstaben erlaubt:
Da AOL (evlt auch andere Provider) öfter die IP wecheln, dachte ich selber eine Art IP zu vergebe, in Form von dem Cookie "SessionID". Nach korrekter Ameldung wird also das Cookie "SessionID" erzeugt. So kann ich auf jeder Seite prüfen, ob noch immer der Benutzer xyz mit der erzeugten SessionID übereinstimmt:
cookie_check.php:
Macht das Login-Verfahren Sinn oder hab ich einen Denkfehler?
Chers
hab mir ein Loginverfahren überlegt, mit Inspiration durchs Forum, und wollt euch mal bitten drüberzuschaun, ob man das als sicher bezeichnen könnte.
Beim Anmelden wird das Passwort mit sha1 gehast. Wenn jemand das gehaste Passwort abfängt könnte er sich nicht einloggen, da das Passworteingabefeld nicht 40 Buchstaben erlaubt:
PHP:
?>
<script src="sha1.js" type="text/javascript"></script>
<script language="JavaScript" type="text/javascript"><!--
function login(f) {
f['pssws'].value = hex_sha1(f['psswd'].value);
f['psswd'].value = '';
return true;
}
</script>
<?php
echo "<form action='cookie_check.php' method='POST' onSubmit='return login(this);' name='formlog'>\n";
echo "<table><tr>";
echo "<td><input type='hidden' name='pssws' value=''></td>\n";
echo "<td>Benutzername :</td><td><input type='text' name ='nick' value ='' maxlength='30'></td>\n";
echo "<td>Passwort :</td><td><input type='password' name ='psswd' maxlength='30'></td>\n";
echo "<tr><td><input type='submit' value='Anmelden' name='anm'></td>\n";
echo "</tr></table>\n";
echo "</form>\n";
Da AOL (evlt auch andere Provider) öfter die IP wecheln, dachte ich selber eine Art IP zu vergebe, in Form von dem Cookie "SessionID". Nach korrekter Ameldung wird also das Cookie "SessionID" erzeugt. So kann ich auf jeder Seite prüfen, ob noch immer der Benutzer xyz mit der erzeugten SessionID übereinstimmt:
cookie_check.php:
PHP:
$nick = $_POST['nick'];
$pssw = $_POST['pssws'];
// Datenbankabfrage
$sqla = "SELECT benutzer, psswd FROM $tbname WHERE benutzer='$nick' AND psswd='$pssw'";
$sqlb = mysql_query($sqla);
$sqlc = mysql_num_rows($sqlb);
if ($sqlc == 1) {
// Cookies setzen
setcookie('Benutzer', $nick);
$date = DATE(s.y.d.m);
$md5sess = md5($nick.$pssw.$date);
mysql_query("UPDATE $tbname SET idsess='$md5sess' WHERE benutzer='$nick'");
setcookie('SessionID', $md5sess);
header ("Location: $url/index.php");
} else {
header ("Location: $url/index.php?f=1");
}
Macht das Login-Verfahren Sinn oder hab ich einen Denkfehler?
Chers