Oprettet søn. d. 07. oktober 2012 kl. 12:56:15

htx98i17
htx98i17 (17.599 point. Point ude: 0)

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']."/ (...));  exit; }

Den står i top af php-dokumentet. Kan man på nogen måde kringle sig adgang alligevel?

Skrevet søn. d. 07. oktober 2012 kl. 13:23:31| #1

lclemens
lclemens (2.345 point)
Umiddelbart, nej, så kan man ikke snyde sig udenom lige den kodeblok, men der kan jo godt være sikkerhedsbrister andre steder.

Skrevet søn. d. 07. oktober 2012 kl. 15:31:15| #2

olebole
olebole (216.873 point)
<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>

Skrevet søn. d. 07. oktober 2012 kl. 15:51:23| #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.

Skrevet søn. d. 07. oktober 2012 kl. 16:20:22| #4

olebole
olebole (216.873 point)
- 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  =)

Skrevet fre. d. 19. oktober 2012 kl. 13:44:54| #5

htx98i17
htx98i17 (17.599 point)
tak for deltagelse
lukker

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   


Seneste spørgsmål

Hjælp ønskes til to løkker, der driller...

Oprettet den 18. juni 2013 kl. 15.28
allandk giver 30 point for svar | Giv et svar »

Faa xml out put som en variable

Oprettet den 18. juni 2013 kl. 14.08
techboy992 giver 30 point for svar | Giv et svar »

PHP Programmør søges!

Oprettet den 18. juni 2013 kl. 00.50
Japsen giver 0 point for svar | Giv et svar »







IT Kurser
Samarbejdspartnere

Udgiver · © 2013 Computerworld A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger