Hvorfor er der ikke flere, der lykkes med Agentic AI? Fordi de mangler at håndtere mellemregningerne fra POC til storskalaløsning.
Slettet bruger
29. juli 2004 - 21:19#1
Du kunne måske md5 kryptere det password du tjekker om eksisterer ved logon.
Ydermere ved jeg ikke om der er flere sites forbundet i dit loginsystem, hvis der er, så lav en $logged_in == "true", og lav en session der tjekker om denne er sat i toppen af hver side.
desuden ville det nok være klogt at checke ved hvert mysql_* om det lykkedes. eg. noget a la mysql_query($query) or die(mysql_error());
i øvrigt bør du sikre dig at register_globals ikke er sat til på din server, da brugeren ellers muligvis (kommer an på resten af din kode) kan override $DB. det kan du evt. klare ved også at bruge mysql_escape_string() omkring $DB.
md5 er en såkaldt envejs kryptering. som regel bruger man det til, at kryptere passwords i databasen så de ikke kan læses, hvis en hacker får adgang til din db. (men det burde han alligevel ikke få i første omgang) da det er en envejs kryptering (i modsætning til en symmetrisk kryptering), har det ydderligere den fordel at sysadm (dig) ikke har mulighed for at finde ud af hvad folks passwords er. det er en øget sikkerhed for brugeren, eftersom man ofte bruger samme password flere steder, og du ville derfor kunne misbruge oplysningen.
du kan bruge md5 ved at anvende mysql-funktionen MD5() eks : $get = mysql_query("SELECT id, active, name, pass FROM $DB.user WHERE email='$_POST[logon_email]' && pass=MD5('$_POST[logon_pass]')");
du skal så bare huske at gøre det der, hvor du indsætter i db også.
en anden måde at bruge md5 på er, at encrypte password'et med md5 vha. en javascript-funktion, inden du submit'er din form. en lettere (og endnu sikrere) løsning ville dog være bare at køre dit site over ssl-forbindelse. eller i det mindste selve login-formen.
det er i øvrigt også en god idé, at regenerere session_id, når brugeren logger ind. det sikrer imod den mest alm. form for session-hijacking. du kan gøre det ved, at smide følgende funktionskald ind : session_regenerate_id();
funktionen gør, at din session får et nyt nummer. dvs. selvom der måtte være en person, der har hijack'et din session, så vil hans forsøg mislykkedes idét din aktuelle (usikre) session bliver lukket og en ny bliver åbnet. det klares ved, at kalde ovennævnte funktion, og du bør derfor gøre det når en bruger logger ind i dit system. bare smid funktionskaldet ind lige før denne linie : $_SESSION['userid'] = $row['id'];
> squashguy der var en glimrende artikel om emnet i php|architect i februar 2004 nummeret. ( http://www.phparch.com/issue.php?mid=24 ) du kan jo prøve at sende den i nakken på admin.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.