Login-System/Security
Hallo,
ich hatte ein Login-System benötigt, daher stiess ich hier zunächst auf das Login-Tutorial von mrhappiness. Daran gefiel es mir aber nicht, das durch die Sessions nach einem schliessen der Seite man beim nächsten Öffnen automatisch als ausgeloggt gilt. Daher wollte ich das ganze auf Cookies umbaun, was ich auch ohne Probleme geschafft habe, nur wollte ich kurz wissen, ob es auch von der Security richtig ist, wie ich es gemacht habe, da ich ungern irgendwelche Sicherheitslücken im Login-System haben möchte.
Also hier der Auszug der Funktionen:
Also das waren die zentralen Funktionen...könnte es da irgendwelche Probleme mit der Security geben oder kann ich das System guten Gewissens für meine HP benutzen?
Hallo,
ich hatte ein Login-System benötigt, daher stiess ich hier zunächst auf das Login-Tutorial von mrhappiness. Daran gefiel es mir aber nicht, das durch die Sessions nach einem schliessen der Seite man beim nächsten Öffnen automatisch als ausgeloggt gilt. Daher wollte ich das ganze auf Cookies umbaun, was ich auch ohne Probleme geschafft habe, nur wollte ich kurz wissen, ob es auch von der Security richtig ist, wie ich es gemacht habe, da ich ungern irgendwelche Sicherheitslücken im Login-System haben möchte.
Also hier der Auszug der Funktionen:
PHP-Code:
//$db_zugriff aufgrund der MySQL-Klasse globalisiert
/*
Das im Formular angegebene Passwort wird bereits mit md5 verschlüsselt an die Funktion übergeben - liegt natürlich in selber Form in der Datenbank vor...
*/
function check_user($name,$pass){
global $db_zugriff;
$result = $db_zugriff->query_first("SELECT userpasswort FROM users WHERE usernick = '".$name."'");
if($pass == $result[0]) return '1';
else return '0';
}
/*
Cookies mit usernick und verschlüsseltem Passwort werden gesetzt, auf die Dauer von einem Jahr - sollte reichen
*/
function login($usernick,$userpass){
setcookie("dba_usernick", "$usernick", time()+(3600*24*365));
setcookie("dba_userpass", "$userpass", time()+(3600*24*365));
}
/*
Es wird überprüft, ob die Cookies gesetzt sind - falls ja ob die Daten auch stimmen...
*/
function logged_in(){
if(isset($_COOKIE['dba_usernick']) && isset($_COOKIE['dba_userpass'])){
if(check_user($_COOKIE['dba_usernick'],$_COOKIE['dba_userpass']) == "1") return '1';
else return '0';
}else return '0';
}
/*
Die Cookies werden durch den Logout wieder zurückgesetzt...
*/
function logout(){
setcookie("dba_usernick");
setcookie("dba_userpass");
}
/*
Falls ein User eingeloggt ist wird die $username mit seinem Nick definiert, ansonsten ist sie leer - der User ein Gast
*/
if(logged_in() == "1"){
$username = $_COOKIE['dba_usernick'];
}else $username = "";
Kommentar