Avatar billede rasmus-madsen Nybegynder
21. december 2005 - 19:27 Der er 9 kommentarer og
1 løsning

Login system.

Hej allesammen.

Er igang med et login system, som gerne skulle være bare lidt sikkert.

Det ikke dokumenter for nasa som ligger der, men nogen profiler ;) .. Så ikke det helt store.

Men det faktisk længe siden jeg har roddet i det, da jeg mere har brugt .Htaccess(eller hvordan det staves).

Hvad skal jeg være opmærksom på ?

Hvordan krypteres en session ?

Og skal man udtrække efter både brugernavn og adgangskode i samme SQL og hvis den finder noget er man logget ind
ELLER
Skal man udtrække efter brugernavn og tjekke om adgangskoden er den samme ?

På forhånd tak.
Avatar billede rasmus-madsen Nybegynder
21. december 2005 - 19:28 #1
Andre kommentare om mere sikkerhed er også velkommen
Avatar billede htmlkoder_dk Nybegynder
21. december 2005 - 19:37 #2
Jeg har lavet et sådanher:

$brugernavn = $_POST["brugernavn"];
$password = $_POST["password"];
$selectuser = mysql_query("SELECT * FROM brugere WHERE brugernavn='$brugernavn' AND password='$password'");
$selectuser_array = mysql_fetch_array($selectuser);
$selectuser = mysql_num_rows($selectuser);
if($selectusers == 1)
{
echo "Velkommen. Du er nu logget ind...";
}
else
{
echo "Du er ikke logget ind";
}
?>


Du kan kryptere på 2 måder:
md5($_SESSION['navn']);
crypt($_SESSION['navn']);
Avatar billede htmlkoder_dk Nybegynder
21. december 2005 - 19:39 #3
Min hjerne har det vist ikke så godt i dag :o
Sådan her kan det laves:

$brugernavn = $_POST["brugernavn"];
$password = $_POST["password"];
$selectusers_sql = mysql_query("SELECT * FROM brugere WHERE brugernavn='$brugernavn' AND password='$password'");
$selectusers_array = mysql_fetch_array($selectusers_sql);
$selectusers = mysql_num_rows($selectusers_array);
if($selectusers == 1)
{
echo "Velkommen. Du er nu logget ind...";
}
else
{
echo "Du er ikke logget ind";
}
Avatar billede rasmus-madsen Nybegynder
21. december 2005 - 19:40 #4
hmm det da ikke særligt sikkert..

Du valiere jo ikke post !
Avatar billede oppermann Nybegynder
21. december 2005 - 20:08 #5
Du kan altid ligge brugernes oplysninger (brugernavn og password) i md5 krypteret format.

$md5_password = md5($password);
Avatar billede nizo Nybegynder
21. december 2005 - 21:56 #6
en sha1 kryptering er mere sikker end md5 :)
Avatar billede doc404 Novice
21. december 2005 - 23:10 #7
MD5 eller SHA1 er er ikke kryptering, men en såkaldt hash. Forskellen er at fra noget krypteret kan man komme tilbage til klartekst - det kan man ikke med en hash.

Som nævn skal du validerer brugernavnet. Check f.eks. at det kun består af bogstaver og cifre. Hvis du inden din SQL sætning laver en MD5 eller SHA1 af kodeordet er det ikke nødvendigt at validerer dette.

Hvis du skal krypterer din session (går udfra du mener beskyttelse mod netværkssniffere) er den eneste løsning at bruge SSL.
Avatar billede johan.o Nybegynder
22. december 2005 - 00:40 #8
Som doc404 skriver, er det vist ikke muligt at 'kryptere' en session i alm. http, men du kan naturligvis 'kryptere' dine session variabler, men det du opnår ved dette er mere at du beskytter dine brugeres f.eks. password over for omverdenen, ikke at du nødvendigvis gør dit script mere sikkert over for f.eks. session highjack.

Hvorledes du 'spørger' i databasen er ikke så vigtigt, det der er vigtigt i den forbindelse er at du anser alt udefra kommende input som skadeligt, og derfor gør hvad du kan for at rense det for uvedkommende/farligt indhold, f.eks. ved hjælp af regular expressions. før du bruger det i en query.

Områder som du bør have opmærksomheden rettet imod er for eksempel :

Validering af alle 'udefra' kommende værdier (POST/GET/SESSION_ID/COOKIES osv.)
Beskyttelse mod SQL injektion. (mysql_real_escape_string())
Beskyttelse af brugeres password - da mange bruger samme password flere steder.

Session-highjack...der kan laves en del 'krumspring' for at forsøge at forhindre dette, men det er lidt omstændigt, for ikke at sige umuligt, totalt at forhindre dette.

Mvh. Johan
Avatar billede johan.o Nybegynder
22. december 2005 - 01:02 #9
Jeg har skrevet lidt i en artikel om session highjack, den 'koster' godt nok 5 point så hvis ikke du vil bruge dem, kan du spørge til emnet, så skal jeg forsøge at svare efter bedste evne :)

Artiklen er her : http://exp.dk/artikler/857

Mvh. Johan
Avatar billede rasmus-madsen Nybegynder
27. januar 2009 - 22:06 #10
Lukker !
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester