22. juni 2006 - 21:58Der er
30 kommentarer og 1 løsning
Sikkerhedsbrist ved typen "hidden" ved FORM
Hej eksperter!
Når man vil lave en admin-del til sit side kan man jo nok have brug for flere "led"...
Eks.: 1) Loginside (HTML-form) 2) Tjek kodeord - hvis korrekt vises egenskaber for siden (disse kan så ændres) (PHP-genereret HTML-form) 3) Her ændres egenskaberne så (PHP)
Problemet er så, at enhver med lidt kendskab til PHP og HTML selv kan lave et script, der springer direkte til den tredje side og ændrer i egenskaberne - bare uden et interface. Man kan jo rimelig nemt gætte navnene på de variabler, der angiver hvilke egenskaber, der skal ændres.
For at undgå at dette sker, har jeg forsøgt mig med et "hidden"-element i min FORM på anden side. Dens "value" er så sat til det korrekte kodeord. Så tjekker den tredje side dette kodeord, der, hvis man har været igennem de tidligere trin, er rigtigt. Problemet er så bare, at ved brug af typen "hidden" som sikkerhedstjek, kan brugeren se kodeordet i kildekoden!!! DET er lidt af en bommert!
Så her er endelig spørgsmålet: Er der en bedre metode til at tjekke, om brugeren har indtastet korrekte informationer på en tidligere side i en sådan kæde?
Brug session istedet, hvor du har en funktion den tjekker om session id og og bruger er i orden du kører på alle sider, så kan man ikke hoppe forbi noget.
iss: Med mindre der er en som stjæler ens session-id! :o) Ellers er sessions vejen frem, som iss siger. Du skal altid tjekke for alle tænkelige ting, eller omvendt, sikre du kun godkender lige præcis det som er meningen der skal modtages.
Lol, siden har nok ikke mange hackeres interesse... Når den er færdig kommer den til at lægge på http://www.krainart.dk/. I kna jo lige se den... Den er ikke specielt fancy ;)
Synes godt om
Slettet bruger
23. juni 2006 - 08:36#9
Øøøøh.... Jeg er ikke helt sikker på, at jeg forstår princippet.
Synes godt om
Slettet bruger
23. juni 2006 - 08:37#10
Er en session et ur, der tæller fra sezzion_start()? Tjekker den så, om sessionen har den ritige værdi? Kan I ikke lige give et eksempel...?
Mange tak! Jeg fandt artiklen 'SESSION med PHP' (http://www.eksperten.dk/artikler/923). Den forklarede alt, jeg behøver at vide. Tak, bare smid et svar, begge to!
Jeg prøver lige at flytte session_start(); øverst...
Synes godt om
Slettet bruger
23. juni 2006 - 17:41#18
Hm... Det hjelp ikke. Den retunerer stadig
Notice: Undefined variable: _SESSION in c:\program files\easyphp1-8\www\php session test\end.php on line 5 Der opstod en fejl. Warning: session_destroy(): Trying to destroy uninitialized session in c:\program files\easyphp1-8\www\php session test\end.php on line 22
Du mangler session_start() i din end.php, gør du ikke?
Synes godt om
Slettet bruger
23. juni 2006 - 22:17#21
Ups... Lol, jeg antog, at Session var lige som et "globalt objekt" - at når det først var oprettet, forblev det aktivt. Men sådan er det nok ikke... Tjekker lige...
Synes godt om
Slettet bruger
23. juni 2006 - 22:21#22
NU VIRKER DET! Tusind tak...
Lige et kort spørgsmål til: Hvad hvis brugeren via addressefeltet går til en anden hjemmeside og f.eks. tilbage igen - eksisterer Sessionen så stadig?
Synes godt om
Slettet bruger
23. juni 2006 - 22:21#23
Og iss og leif, smid lige nogle svar også... Ellers går pointene bare til jakobdo.
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.