On Wed, 25 Feb 2004 12:46:48 +0100
Thomas Lindgaard <thomas@it-snedkeren.BLACK_HOLE.dk> wrote:
> On Tue, 24 Feb 2004 19:05:00 +0000, Christian wrote:
>
> > Er det muligt at lave et login system med flere brugere uden
> > htaccess og MYSQL? Kan nogen henlede mod en tutorial der _virker_
> > eller give et functionel script?
>
> Alt er muligt :)
>
> Du kan f.eks. have dine brugeroplysninger liggende i et array der ser ud
> som følger:
>
> $users = array(
> 'svendbent' => array('realname' => 'Eivind Olsen',
> 'password' => [noget krypteret noget]),
> ...
> );
>
> Det array kan du gemme i en fil:
>
> $f = fopen('users.txt', 'w');
> fwrite($f, serialize($users);
> fclose($f);
>
> og du kan læse det ind igen:
>
> $users = unserialize(file_get_contents('users.txt'));
>
> Så er der bare tilbage at checke det af brugeren indtastede kodeord op
> imod det du har stående i din fil:
>
> $encrypted_pwd = $users[$_POST['username']['password'];
> if ( crypt($_POST['password'], $encrypted_pwd) == $encrypted_pwd )
> {
> // Nøj hvor er vi glade
> }
> else
> {
> // Brugeren er en møghund
> }
>
> Koden er naturligvis utestet og jeg fralægger mig ethvert ansvar - men
> ideen burde virke :)
Ja men den giver ikke nogen særlig god beskyttelse. Du sender jo
password i klartekst. Problemet kan ikke løses ret serverside.
en god løsning er MD5 med SALT. Det foregår på den måde
at loginsiden sænder et pseudo-tilfældigt tal frem til klienten
som så laver MD5 på det sammen med det indtastede password(java eller
javascript). På den måde vil det password der fremsændes altid være forskelligt
Så kan du styre ved hjelp at session og cookies.
Hvis man ikke vil have password liggende og flyde i klarttekst
på serveren må man lave en dobbeltindlejring. Det kan også være nødvendigt
hvis man ønsker at klienten selv skal være i stand til at ændre password
uden at det sændes i klartekst.
> Man kunne måske argumentere for at users.txt skal ligge uden for
> webscope, så man ikke umiddelbart kan læse den via sin browser...
God ide;->
--
Poul-Erik Andreasen
http://www.linux-service.dk
http://www.pea.dk