Med register_globals = On får du automatisk adgang til en række variabelnavne i dit script.

Relaterede dokumenter
Arrays i PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 04. Feb 2009 af taskmgr I kategorien Programmering / PHP

Som sagt kræves der helst lidt viden om OOP hvis man virkelig vil lærer noget, og ikke bare lave copypaste

Kontrol-strukturer i PHP

Tagwall med Php & MySQL

Simpel upload af filer

Ratingsystem i PHP og MySQL

Loginsystem (med MySQL)

Afsending af s vha. ASP

Upload af billeder/filer for nybegyndere Del. 2

Uploade billeder eller andre filer ved hjælp af php og mysql

Gæstebog med validering opbygget med MySQL

I mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online.

Database design for begyndere

I denne arktikle går jeg gennem Slet, Ret og Opret data i en MySQL database. der er også en lille del i den hvor den postere datanen ud i en løkke

I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.

Sådan skriver du artikler til Eksperten!

Log ind med PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 09. May 2011 af dab93 I kategorien Programmering / Andre

PHP Snippets. De små korte. Skrevet af Daniel Pedersen

SESSION med PHP. En let begynderguide som kan føre dig ind i en verden af muligheder. Denne guide er oprindeligt udgivet på Eksperten.

Dette er en grundlæggende artikel til hvordan du laver et lille community, med forskelige

Session-highjack...et halvt skridt mod en modgift

Dynamisk PHP design OPDATERET

Loginsystem med PHP4, klasser, sessions og MySQL database

Anvendelse af metoder - Programmering

Historiske benzin- og dieselpriser 2011

Koden i denne guide vil kun virke i Flash MX 2003 og MX ikke ældre versioner!

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

Hvad er Objekter - Programmering

At klippe en streng over på det mest hensigtsmæssige sted

Begrynder til at lave log ind system

Det er primært relevant for dem hvor der arbejdes på en gammel bærbar computer, som ikke har en stærk processer og nok ram, at gøre godt med.

Ekstra hastighed med array's i Excel-VBA

I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal.

Hej alle sammen, nu fjerner vi lige mystikken om alle de "ulovlige tags" her på eksperten.dk

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

Send fra Java. Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende fra Java.

Faxe, indbrud. Jan Feb Mar Apr Maj Jun Jul Aug Sep Okt Nov Dec. SSJÆ, indbrud. Jan Feb Mar Apr Maj Jun Jul Aug Sep Okt Nov Dec.

Trådløs rækkevidde. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 03. Feb 2009 af bufferzone I kategorien Netværk / Generelt

Denne artikel er til dem der ønsker at vide mere om hvad CSS er og hvad CSS kan bruges til hvad angår WWW.

Singleton pattern i Java

Undtagelseshåndtering i C#

Introduktion til SQL queries

I denne artikel vil jeg gennemgå hvordan en side for RSS "Live Bogmærke" kan se ud.

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).

Brugerdefineret menuer i Access

Serversideprogrammering, CMS og eshop. Dag 1: Introduktion og serverside programmering Niels Østergaard

Denne artikel er en detaljeret gennemgag af det fundamentale i batchfiler til hjemmebrug :-) FEEL THE POWER! ;-)

Filen global.asa, en asp programmørs ven

Mozilla Firefox (tidligere Firebird): Fremhæve ord

Pakkeløsning - Sikker færden på Nettet

PHP Crash course. Databaser

Start på javascript. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 03. Feb 2009 af webstuff I kategorien Programmering / JavaScript

Fotoalbum i Access - del 1

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.

PHP Pagination. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 01. May 2011 af dab93 I kategorien Programmering / Andre

Regulære udtryk, 2. del

Arrays og deres slægtskab med objects

Form og dens underlige box model

Dansk Energi F:\Statistikdata\Uddata\Energipriser\Elpris-sammensætning-måned-4000kWh.xlsx/Elpris4000 Side 1 af 12

Endnu mere om tilfældige tal

Programmering for begyndere Lektion 2. Opsamling mm

Tilfældige tal. Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge.

Den forudsætter kendskab til XML og C# men ikke til brug af XML i C#.

Uddannelseshjælp - antal borgere

30. mar apr :00 Boldopsamling 16:00 Junior 17:30 Fri Elite

reducedcoping StrategyIndex

SQL for MySQL-begyndere

Den forudsætter kendskab til XML og VB.NET men ikke til brug af XML i VB.NET.

De skjulte input typer:

Sådan kan du sende data fra din egen hjemmeside til JitBesked via en HTML-JDF.

Hackeren - Hvad gør han når han er kommet ind på mit system.

Singleton pattern i C#

1 Kalenderen. 1.1 Oversigt over de til årstallene hørende søjlenumre

Website sikkerhed SQL Injections og mere...

jquery - selectors, attributes, traversing og manipulation

Indholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen...

Dansk Energi F:\Statistikdata\Uddata\Energipriser\Elpris-sammensætning-måned-4000kWh.xlsx/Elpris Side 1 af 6

Tidsplan Allindelille Skee, 2015 Dato: 7. april 2015

JSP, Tomcat. Tutorial lavet af Jákup W. Hansen TSU semester 10.october 2007

Den grønlandske varmestue Naapiffik Statistik

Denne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS.

Gennemsnit af meningsmålinger 2016

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

Beskriver WOW Ik 100% godt men gør mit bedste + alle stavefejl er gratis men dog er der ikke mange

Introduction til.net remoting i C#

reducedcoping StrategyIndex HouseholdfoodsecurityinYemenremainsstabledespitethecontinuationoftheconflictashumanitarianassistanceisreachingmo.

Sikker kodning af Web systemer og applikationer

Flerbruger miljø, opdel database

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET

Regulære udtryk, 4. del, Kogebogsudtryk

Fladskærmenes fordele og ulemper

Delphi og Databaser for begyndere

reducedcoping StrategyIndex

Introduktion til funktioner, moduler og scopes i Python

Gode passwords, hvad er det

YEMEN mvam Buletin#35:July2018. Keypoints. Householdsresorttonegativecopingasfoodconsumptiondeteriorates. Situationupdate

Delphi - CrackMe og Keygen

Træt af 2mb På Din Hotmail?

Wednesday, April 17, 13

Transkript:

Denne guide er oprindeligt udgivet på Eksperten.dk Register Globals Off Lad os slå en ting fast med det samme - register_globals = Off er en god ting, i hvert fald set ud fra et sikkerhedsmæssigt synspunkt. Det kan dog stadig volde problemer, hvis man ikke har arbejdet med det før, men løsningen ligger heldigvis lige for. Skrevet den 03. Feb 2009 af googolplex I kategorien Programmering / PHP Med register_globals = On får du automatisk adgang til en række variabelnavne i dit script. Se eksempelvis på følgende formular: <form action="nyside.php" method="post"> <input type="text" name="fornavn" value="" /><br /> <input type="text" name="efternavn" value="" /><br /> <input type="submit" name="send" value="send" /> <input type="reset" value="nulstil" /> </form> Når formularen 'submittes' får du på siden 'nyside.php' automatisk adgang til følgende variabler: $fornavn (indeholder det brugeren indtastede som fornavn) $efternavn (indeholder det brugeren indtastede som efternavn) På samme måde gælder det for følgende URL: http://domaene.dk/nyside2.php?artikelid=125&side=3 Her får vi i 'nyside2.php' adgang til: $artikelid (125) $side (3) Det er naturligvis dejlig nemt, men desværre ikke særlig heldigt set ud fra et sikkerhedsmæssigt synspunkt (Læs mere på http://dk.php.net/manual/en/security.registerglobals.php). Derfor sætter man ofte register_globals = Off. Det betyder, at variablerne i overnstående eksempel ikke længere er tilgængelige per automatik. Har man baseret sin kode på register_globals = On virker den naturligvis ikke længere! Variablerne ligger dog stadig gemt i følgende superglobale arrays: $_POST - Her ligger variablerne sendt med post-metoden (fx $_POST['variabel']) $_GET - Her ligger variablerne sendt med get-metoden (fx $_GET['variabel']) $_REQUEST - Her ligger variablerne fra fra både $_POST, $_GET (og $_COOKIE - se senere)

Personligt bruger jeg $_POST og $_GET i stedet for $_REQUEST, så har jeg bedre styr på hvor variablerne kommer fra. Det nemmeste er at gemme variablerne under nogle nemmere navne, i vores tilfælde ville vi indsætte følgende inden vi skal bruge dem: $fornavn = $_POST['fornavn']; $efternavn = $_POST['efternavn']; $artikelid = $_GET['artikelID']; $side = $_GET['side']; Eller alternativet: $fornavn = $_REQUEST['fornavn']; $efternavn = $_REQUEST['efternavn']; $artikelid = $_REQUEST['artikelID']; $side = $_REQUEST['side']; Herefter kan vi bruge variablerne præcis som vi gjorde med register_globals = On. Det er naturligvis ikke nødvendigt at gemme dem først, vi kan også bruge dem direkte: if (isset($_post['fornavn']) && $_POST['fornavn'] == 'Peter') echo 'Hej Peter, du er min ven :-)'; else echo 'Du er ikke min ven :-('; Hvis du skal konvertere din kode fra register_globals = On til register_globals = Off, er det nemmest at bruge den første metode. Så slipper du med at gemme dine variabler i starten af koden - i stedet for at foretage ændringer mange steder i din kode. Som du forhåbentlig kan se, er det ikke så avanceret at konvertere til register_globals = Off og absolut noget du bør overveje uanset din konfigurationen! Der findes i alt 9 superglobale arrays, her følger en liste: $GLOBALS : Alle globale variabler, også andre superglobale variabler $_COOKIE : Variabler modtaget fra cookies (HTTP cookies) $_ENV : Variabler fra serverens miljø - se i phpinfo() hvilke der er tilgængelige på din server $_FILES : Special array der kommer ved HTTP-POST-upload af filer $_GET : Variabler fra adresselinien eller en formular hvor method="get"

(HTTP GET) $_POST : Variabler modtaget fra en formular hvor method="post" (HTTP POST) $_REQUEST: Samling af $_GET, $_POST og $_COOKIE $_SERVER : Variabler fra serveren - se i phpinfo() hvilke der er tilgængelige på din server $_SESSION: Variabler fra brugerens session Du kan læse mere om dem på http://dk.php.net/manual/en/language.variables.predefined.php. Her på falderebet en lille funktion jeg har fundet og tilrettet. Den er til alle jer, der må lide under register_globals = On :-) Smid den i starten af din kode (før du begynder at arbejde med variabler) så skal du bare se løjer ;-) <?php /* Funktion der 'sætter' register_globals = Off */ /* Void unregister_globals() */ function unregister_globals() $COOKIE = $_COOKIE; $ENV = $_ENV; $FILES = $_FILES; $GET = $_GET; $POST = $_POST; $REQUEST = $_REQUEST; $SERVER = $_SERVER; if (isset($_session)) $SESSION = $_SESSION; foreach ($GLOBALS as $key => $value) if ($key!= 'GLOBALS') unset($globals[$key]); $_COOKIE = $COOKIE; $_ENV = $ENV; $_FILES = $FILES; $_GET = $GET; $_POST = $POST; $_REQUEST = $REQUEST; $_SERVER = $SERVER;

if (isset($session)) $_SESSION = $SESSION; /* Husk at bruge funktionen */ unregister_globals();?> Derudover kan du smide følgende i din '.htaccess': php_flag register_globals off Det kan bruges på nogle servere, alt efter hvad du har tilladelse til. Bemærk: ini_set() kan ikke benyttes! Håber du blev en smule klogere, vi ses på Eksperten! Kommentar af kirsten d. 28. Jun 2005 1 Kommentar af macintosse d. 29. Sep 2004 2 Kommentar af rjpa d. 16. Jan 2005 3 Den er sku god, lærte mig noget nyt i dag også ;) Kommentar af jesperhaun d. 24. Feb 2004 4 Kommentar af basementjack d. 14. Nov 2004 5 Sikkert god.. Ville rart hvis man kunne læse at det var om PHP, uden at smide 5 point efter den.. Kommentar af espersen d. 18. Jan 2005 6 fin fin ; udemærket artikel, fin gennemgang med eksempler så det er til at forstå. og ja - den er jo oprettet under PHP, hvilket den også omhandler ;o) Kommentar af tfswebguy d. 23. Mar 2005 7 En af de korteste, mest detaljerede og beskrivende artikler jeg længe har landet på. Det er sku dejligt at se :o) Kører selv scripts med Register Globals til On, da det er det jeg har lært mig til fra starten af.. Men nu hvor der er noget overblik over funktionerne vil jeg begynde at omprogrammere til Reg = Off :o)

Kommentar af 123maka d. 17. Jun 2004 8 Supergod! Kommentar af smeier d. 16. Aug 2004 9 Fed artikel. Kommentar af hyha d. 29. Jul 2004 10 Total nice artikkel. Efter at have bøvlet med dette problem i 4 uger, og så får man serveret det, vor herre ikke havde udstyret mig med... Kommentar af alleykat d. 25. May 2004 11 Rigtigt go' oversigt over dem, og for en gangs skyld en ordentligt struktureret forklaring på det! Tak googolplex Kommentar af baxos d. 28. Jan 2004 12 Kommentar af gartzen (nedlagt brugerprofil) d. 09. Nov 2004 13 God artikkel som er godt forklaret med gode begrundelser! Perfekt længde for en artikkel, efter min mening. Nem at forstå samtidig med at det hele er med! SUPER :D Kommentar af triper d. 23. Sep 2004 14 Kommentar af wicez (nedlagt brugerprofil) d. 17. Feb 2005 15 Rigtig god og velformuleret artikel /Wicez Kommentar af morteeart d. 05. Sep 2004 16 Genialt, et must-read for enhver begynder. (eller øvede som ikke havde lært det fra starten ;) :D Kommentar af horizon d. 16. Apr 2005 17 Superfin! Kommentar af talrinys d. 24. Oct 2004 18 Genialt, jo flere der ved at det er bedst at have den off jo bedre. Kommentar af alister_crowley d. 14. Feb 2005 19 Kommentar af jesperjuul d. 09. Aug 2005 20 Jeg synes den er udmærket. For den der ikke vidste det i forvejen er det i hvert fald nyttig viden. Kommentar af duuink d. 20. Jun 2007 21