Visa ett inlägg
Oläst 2004-07-08, 15:17 #10
zorans avatar
zoran zoran är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 598
zoran zoran är inte uppkopplad
Mycket flitig postare
zorans avatar
 
Reg.datum: Jun 2004
Inlägg: 598
Citat:
Ursprungligen postat av orreborre
Citat:
Ursprungligen postat av zoran
Exempel: Om jag, för att markera att en användare är inloggad sätter $_SESSION['loggedin'] = "true"; med register_globals off, så kan inte "surfaren" komma åt den variabeln för att sätta den och gå förbi authenticeringen.

Använder jag register_globals och inte använder $_SESSION[''], och varje $_POST['foo'] eller $_GET['foo'] blir istället $foo automatiskt, så kan användaren göra helt enkelt http://www.example.com/mittscript.php?loggedin=true för att sätta min autenticeringsvariabel.

/Zoran
Jag säger inte emot dig, jag håller med om att globals ska vara off, men riktigt så enkelt är det inte för användarna.
Hur ska en användare veta att det är just variabeln "loggedin" som ska sättas till true?
Vad jag menar är att sessionvaribaler är gömda och att man inte kan få reda på variabelnamnen utan måste gissa, så vitt jag vet i alla fall.
Nja, om din ända säkerhet är att räkna med att användaren "inte" ska gissa sig till ditt variabelnamn så handlar det om "security by obscurity", vilket är i princip det sämsta möjliga sätt att skydda sig. Då tvingas du att använda variabelnamn som inte är lättgissade, vilket försvårar ditt jobb också.

Ett annat problem är att du aldrig kan släppa det systemet "publikt", eftersom "folket" kan då se vilka variabler du använder och kan på så sätt attackera alla de som använder ditt system.

Personligen tycker jag att det är KNÖLIGARE att skriva php-kod med register globals. Man kan inte klart urskilja POST från GET-variabler.

/Zoran
zoran är inte uppkopplad   Svara med citatSvara med citat