Avatar billede htx98i17 Professor
07. oktober 2012 - 12:56 Der er 4 kommentarer og
1 løsning

Sikkerhed ved level

Kom til at tænke på, at jeg hellere må spørge om nedenstående kode er sikker nok ift at give/nægte adgang?

if($_SESSION['level']<2) { header("Location: http://".$_SERVER['HTTP_HOST']."/actions/logaf.php");  exit; }

Den står i top af php-dokumentet. Kan man på nogen måde kringle sig adgang alligevel?
Avatar billede lclemens Nybegynder
07. oktober 2012 - 13:23 #1
Umiddelbart, nej, så kan man ikke snyde sig udenom lige den kodeblok, men der kan jo godt være sikkerhedsbrister andre steder.
Avatar billede olebole Juniormester
07. oktober 2012 - 15:31 #2
<ole>

Spørgsmålet: "Kom til at tænke på, at jeg hellere må spørge om nedenstående kode er sikker nok ift at give/nægte adgang?", giver nok ikke så megen mening(?) - alt efter, hvad du mener med det  =)

Hvis koden skal være sikker nok til at afgøre adgangstilladelsen, forudsætter det, at $_SERVER['level'] - og koder 'i nærheden af den' - bliver behandlet forsvarligt/sikkert alle andre steder i din applikation.

Har du en eller anden lille brist et andet sted, hvor du sætter/behandler brugerens session - eller variabler, som har indflydelse på hendes session - er koden ovenfor ikke sikker. Sålænge koden behandler variabler, som bliver behandlet sikkert andre steder, er koden sikker - meeeeeeen ...

Strykninsuppe er afsindig farlig, mens jordbærgrød er totalt ufarlig. Det forudsætter dog, at ingen har penslet jordbærrene med cyankalium - eller importeret dem fra Kina  *o)

/mvh
</bole>
Avatar billede erikjacobsen Ekspert
07. oktober 2012 - 15:51 #3
Du skal ikke bruge sessioner på den måde for at hindre adgang til nationalbankens guldreserver ... :)

1) Man kan stjæle den sessionscookie, og derved udgive sig for at være den anden (og kan man lytte med på linien, kan man sikkert også sørge at komme fra den samme IP-adresse, så det hjælper ikke stort også at kigge på den).

1a) Og punkt 1) kan man så klare så nogenlunde med en https-forbindelse (og du kan selv google efter svagheder ved https)

2) På webserveren ligger navn på sessionscookie, og værdierne i sessionsvariable typisk i klar tekst, og er det på et delt webhotel har du reelt ingen garanti for om andre kan se med.

Så måden er til en vis grad sikker, men om den er sikker nok til din anvendelse kan vi ikke sige noget om. Men skal man klare øl-regnskabet på kollegiet, så går det nok.
Avatar billede olebole Juniormester
07. oktober 2012 - 16:20 #4
- og hækler du SQL-sætninger sammen til brug i MySQL for at logge brugeren ind (og/eller til andre formål), ville jeg kun turde bruge din kode til et virtuelt ølregnskab.

Når man tænker på, hvormange sites, der logger brugere ind over HTTP - og bruger usikker og forældet databasekommunikation - er det et under, at der ikke sker flere 'ulykker' ... og at disse sites overhovedet er oppe!

Man kunne få den tanke, at hackere er dovne eller yderst selektive mennesker. Deres 'arbejdsmarked' er i hvertfald på ingen måde truet af krisen  =)
Avatar billede htx98i17 Professor
19. oktober 2012 - 13:44 #5
tak for deltagelse
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