[PHP] Script zonder register globals

Pagina: 1
Acties:
  • 101 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • TeGek
  • Registratie: Oktober 2007
  • Laatst online: 19-09 11:50

TeGek

Engineer in hart en nieren.

Topicstarter
Ik heb ongeveer een jaartje geleden een script gebouwd die via een form een mapje aanmaakt op een webserver,en een FTP account.

Ik werkte toen met Register_globals,Nu wil ik deze(naartuurlijk)uit zetten maar dan werkt me script niet meer. een klein voorbeeld van het script:(Uit me hoofd)

code:
1
2
3
4
5
6
Submit Form(POST methode)

<?php 
mkdir "D:\\Server\\{domain}\"
exit();
?>

Dus domain wordt bepaalt door een ingevulde waarde op een post form.

Iemand enige idee?

PoSh Fan? Automation? RMM? blog - op zoek naar een nieuwe job? kijk dan hier.


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

PHP:
1
$domain = $_POST['domain'];


Misschien? Afgezien van dat het een onveilige en ranzige oplossing is...

[ Voor 3% gewijzigd door CodeCaster op 27-11-2007 11:44 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • TeGek
  • Registratie: Oktober 2007
  • Laatst online: 19-09 11:50

TeGek

Engineer in hart en nieren.

Topicstarter
CodeCaster schreef op dinsdag 27 november 2007 @ 11:44:
PHP:
1
$domain = $_POST['domain'];


Misschien? Afgezien van dat het een onveilige en ranzige oplossing is...
Ik probeer op zich gewoon helemaal van Register Globals af te komen.
Zou ik dit dus beter voor al me vars te doen?

bedankt :-)

PoSh Fan? Automation? RMM? blog - op zoek naar een nieuwe job? kijk dan hier.


Acties:
  • 0 Henk 'm!

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 19:10

Robtimus

me Robtimus no like you

TeGek schreef op dinsdag 27 november 2007 @ 11:48:
[...]

Ik probeer op zich gewoon helemaal van Register Globals af te komen.
Zou ik dit dus beter voor al me vars te doen?
Ja, meteen gevolgd door een controle of de waarde wel toelaatbaar is. Dus numeric als je numeric verwacht etc.
Dat is ook wat CodeCaster bedoelt met onveilig - iemand kan altijd een zelf gedefinieerde vage waarde doorgeven door te posten zonder gebruik te maken van jouw form. Wat als iemand" ..\FolderInRoot" doorgeeft? Dan wordt "D:\Server\ ..\FolderInRoot" aangemaakt, ofwel "D:\FolderInRoot". Het lijkt me dat dat niet de bedoeling is.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

De snelste oplossing:
PHP:
1
extract($_REQUEST);

Maar dat is dus net zo onveilig als register_globals aan laten staan. :)

Het beste kun je gewoon overal waar je $var hebt staan, $_POST["var"] schrijven, of natuurlijk $_GET, $_SESSION of $_COOKIE. Of je die waarden vervolgens opslaat in een nieuwe variabele of gewoon overal de superglobal arrays blijft gebruiken is een beetje je eigen keuze. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Hieronder: register_globals emuleren

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
if(!ini_get("register_globals"))
{
    $__SUPER_GLOBALS = array("_GET", "_POST", "_COOKIE");
    foreach($__SUPER_GLOBALS as $__SUPER_GLOBAL)
    {
        while(list($__var, $__val) = @each(${$__SUPER_GLOBAL}))
        {
            global ${$__var};
            ${$__var} = $__val;
        }
    }
}

?>

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

iskander: wat denk je dat extract doet? ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

@NME

[ Voor 97% gewijzigd door Verwijderd op 03-12-2007 17:20 . Reden: hmz..... laat maar.... da's idd een stuk korter ]

Pagina: 1