Permalänk
Medlem

PHP - $HTTP_POST_VARS['a']

Förklara för mej varför jag ska använda tex $HTTP_GET_VARS['a'] och $HTTP_POST_VARS['a'] istället för bara $a som jag alltid gjort förut?

Vad är skillnaden förutom att det tar längre tid och skriva?

Visa signatur

"Problemet med socialism är att till sist tar alla andras pengar slut" - Margaret Thatcher

Permalänk
Medlem

säkerhets grej.

Funkar att skriva $_GET['a'], $_POST['a'], $_COOKIE['a'], $_SESSION['a'] osv.

borde stå i faq

Visa signatur

Får jag äta på ditt skägg?

g3wd.mine.nu

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Göwd.
säkerhets grej.

Funkar att skriva $_GET['a'], $_POST['a'], $_COOKIE['a'], $_SESSION['a'] osv.

borde stå i faq

Och varför är detta säkrare då?

Visa signatur

"Problemet med socialism är att till sist tar alla andras pengar slut" - Margaret Thatcher

Permalänk
Medlem

Man kan skicka med en variabel som inte ska vara som den är och på så sätt kunna komma åt en sida t.ex

Eller i ett upload skript jag gjorde förut.
Om man inte postade med en fil, och skrev in en sökväg istället kunde man läsa valfri fil på datorn.

t.ex.

Visa signatur

"..make the move over to a rackmount case, because rackmount cases get you chicks.."
-- Routermonkey

Permalänk
Glömsk

Kennel förklarade det för mig. Har att göra med om register_globals är på eller av. I nyare versioner var det av som standard pga säkerhetsskäl. (eller något sånt, kommer inte ihåg riktigt)

Visa signatur

...man is not free unless government is limited. There's a clear cause and effect here that is as neat and predictable as a law of physics: As government expands, liberty contracts.

Permalänk
Medlem

Ett enkelt exempel på ett farligt skript:

if( checkPassword($user,$pass) )
{
$auth = true;
}

...

if( $auth )
{
launchAtomicBomb(); //eller något annat som inte vem som helst ska ha rättigheter till
}

Då är det ju enkelt att skicka med "?auth=true" i adressen för att ta sig förbi lösenordskollen. Det här är ett av de vanligaste säkerhetsmisstagen man kan göra. Därför har man nu valt att sätta "register_globals" till Off i nyare versioner av PHP.

Men det går såklart att skriva koden säker ändå. Genom att skriva dit "$auth = false;" i början av skriptet så blir det ju säkert. Eller att slänga på en "else $auth=false;" i den första if-satsen där.

Visa signatur

//cykze

Permalänk
Medlem

kan ju säga att samma sak gäller i ASP om det är nån som skriver i ASP som läser detta och är intresserad, tog och provade genom ett litet script nyss och jodå, exakt samma sak som i PHP...

tur att man alltid skrivit request.form, request.querystring istället för bara request som jag sett många gör...

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Psionicist
Kennel förklarade det för mig. Har att göra med om register_globals är på eller av. I nyare versioner var det av som standard pga säkerhetsskäl. (eller något sånt, kommer inte ihåg riktigt)

Stämmer hyfsat
Kennel är kung på att förklara så man förstår, har mycket att tacka han för.

Visa signatur

man or mouse - modem or broadband

Permalänk
Medlem

Jag har sedan länge en funktion för att hindra just den där åtkomstgrejen, men hur aktiverar jag funktionen igen i php? Vill inte ändra på sidan

Visa signatur

(\_/)
(='.') • warpdrive - svenska citatdatabasen
(")-(")

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av sphr
Jag har sedan länge en funktion för att hindra just den där åtkomstgrejen, men hur aktiverar jag funktionen igen i php? Vill inte ändra på sidan

Ändra register_globals i php.ini från no till yes och starta om din webserver.

Permalänk
Medlem

annars kan man skriva en liten funktion som översätter $_POST['xxx'] till $xxx, och includa den på alla sidor.

Visa signatur

4 datorer: 9 cpuer (plats för 4 till), 10scsi+1satadisk, 7.75gb ram, bara Linux
http://isitfika.net http://code.kryo.se

Permalänk
Medlem

Yarrick: Jobbigt värre, om nu skulle vilja gör det så räcker det med att använda extract()

extract($_POST); // Extraherar "formulär"-variablerna till respektive namn extract($_GET); // Extraherar "querystring"-variablerna till respektive namn extract($_SERVER); // Extraherar "server"-variablerna till respektive namn

Tex så blir $_POST["action"] --> $action

Visa signatur

"Kärlek är sådant som växer på träd och ibland trillar ner."
nicklas.gummesson.net