Gå til innhold

Sikkerhetsspørsmål angående session og if-nekt


Anbefalte innlegg

Jeg har laget et admin-system med innlogging og bruk av session.

 

Brukerne plukkes fra en database der de forskjellige er registrert med ulike brukernivåer.

 

Jeg har testet dette med de ulike brukerne, og alt vises riktig. Altså det valgte brukernivå plukker riktig.

 

Likevel må jeg spørre for sikkerhets skyld.

 

Alt ligger nemlig i samme fil, index.php.

 

Dette er koden jeg bruker:

<? if ($myquery[brukernivaa] != 5 ) { ?>
tekst
<? } ?>

Når jeg altså tester med brukernivå 5 får denne ikke lese denne teksten.

 

<? if ($myquery[brukernivaa] == 1 || $myquery[brukernivaa] == 2 || $myquery[brukernivaa] == 5) { ?>
En annen type informasjon
<? } ?>

Mens brukernivå 5 får lese denne informasjonen, sammen med 1 og 2. Dette er også testet og viser riktig.

 

Det som gjør meg litt usikker er jo at disse kodene ligger rett under hverandre i fila (sammen med mange andre forskjellige varianter av nivåer). Det er over 10 brukere og fem ulike brukernivåer så langt.

 

Ja, jeg vet det er php og serverscript, men likevel ønsker jeg å forsikre meg om at dette er trygt.

 

Og mysql-fila ligger også i .php.

 

 

Så; er dette trygt nok? Er det noen annen måte jeg heller bør gjøre dette på for at det skal være enda tryggere?

Lenke til kommentar
Videoannonse
Annonse
Da antar at jeg det er trygt og godt...

5758214[/snapback]

 

Ser da greit ut det, men du kan jo gjøre det litt enklere da.

<?php


// setter bruker data til denne, slik at jeg har den til sendere bruk, navn,nivå osv..
$brukerdata['brukernivaa'] = 4;


// til denne har bare level 3 og 2 tilgang
if(level_check(2,3))
print "tilgang";
else
print "ikke tilgang";




function level_check( ){
global $brukerdata;
$arg = func_get_args();
if(is_array($arg)){
 foreach( $arg as $nr => $level)
 	if($level == $brukerdata['brukernivaa'])
   return true;
 }
else
 if($brukerdata['brukernivaa']) // hvis ikke noe blir sendt videre, sjekker vi om bruker er innlogget..
 	return true;

return false;

}

?>

Kanskje ikke vitsi hvis du bare skal bruke den en gang da.. men greit å ha ;)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...