dragon001
New Member
Bisher hab ich in meinem CMS eine anfälligere Routine zur Autentifikation verwendet.
Gestern hab ich sie gegen eine IP Autentifikation erweitert:
hier der entsprechende Klassen auszu:
Ist dies eine Sichere Methode das System noch mehr abzusichern?
Eine reine Cookie Autentifikation ist ja bekanntlich wegen des cookie Diebstahls nicht unbedingt so zu empfehlen.
Session kann ich allerdings nicht verwenden, da ich die Gesamte Infrastrucktur erneuern müßte.
Dies ist zwar für das nächste update gedacht, doch bräuchte ich jetzt eine Lösung die das ganze noch ein großes Eck sicherer Macht.
Die Daten aus dem Session speicher werden direkt nach dem Anmelden gefüllt.
Jedoch nicht durch das Script selbst sondern durch die phpBB Einbindungsklasse sollten also sicher genug sein. (das die IP dem User auch wirklich gehört)
MFG
draco
Gestern hab ich sie gegen eine IP Autentifikation erweitert:
hier der entsprechende Klassen auszu:
PHP:
#prüft ob es sich um einen User handelt
function is_user(){
$d = $this->__returnCookieData($this->__returnUserCookie());
$dat1 = $this->__returnUserData($d[0]);
$dat2 = $this->__returnSessionData($dat1["username"]);
$uid = $d[0];
$pwd = $d[2];
$set = true;
if($dat2["host_addr"]=!""){
$set = false;
}
if((($set==false)or($dat2["host_addr"]==$_SERVER["REMOTE_ADDR"]))and($uid!="")and($pwd!="")and($pwd==$dat1["user_password"])){
return true;
}else{
return false;
}
}
#pricate Funktion, gibt das UserCookie aus
function __returnUserCookie(){
return $_COOKIE["user"];
}
#private Funktion, gibt die bestandteile des Cookies aus
function __returnCookieData($user){
if(!is_array($user)) {
$user = base64_decode($user);
$user = addslashes($user);
$user = htmlentities($user, ENT_QUOTES);
$user = addslashes($user);
$user = explode(":", $user);
$user[0] = addslashes($user[0]);
}
return $user;
}
#Abruf der User Datenbank
function __returnUserData($uid){
global $api;
return $api["db"]->sql_fetchrow($api["db"]->sql_query("SELECT * FROM ".$api["prefix"]."_users where `user_id`='$uid';"));
}
#Abruf der User Datenbank
function __returnUserNData($user){
global $api;
return $api["db"]->sql_fetchrow($api["db"]->sql_query("SELECT * FROM ".$api["prefix"]."_users where `username`='$user';"));
}
#Abruf der Session Datenbank
function __returnSessionData($username){
global $api;
return $api["db"]->sql_fetchrow($api["db"]->sql_query("SELECT * FROM ".$api["prefix"]."_session where `uname`='".$username."';"));
}
Ist dies eine Sichere Methode das System noch mehr abzusichern?
Eine reine Cookie Autentifikation ist ja bekanntlich wegen des cookie Diebstahls nicht unbedingt so zu empfehlen.
Session kann ich allerdings nicht verwenden, da ich die Gesamte Infrastrucktur erneuern müßte.
Dies ist zwar für das nächste update gedacht, doch bräuchte ich jetzt eine Lösung die das ganze noch ein großes Eck sicherer Macht.
Die Daten aus dem Session speicher werden direkt nach dem Anmelden gefüllt.
Jedoch nicht durch das Script selbst sondern durch die phpBB Einbindungsklasse sollten also sicher genug sein. (das die IP dem User auch wirklich gehört)
MFG
draco