[PHP]Register_globals op de server op ON

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Mavvie
  • Registratie: Maart 2001
  • Laatst online: 10-05-2021
Ik heb een website hosting lopen bij blueyellow hosting(erg goed trouwens). Maar zij hebben hun register_globals op ON. Maar ik heb al mijn php scripts geprogrammeerd op register_globals OFF. Hoe krijg ik deze weer op OFF?

Ik heb via de search gezocht en kom dan op

ini_set("register_globals","0");

uit. Maar dit werkt ook niet bij mij. Is er nog hoop?

Twitter | Linkedin


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 18-09 15:29

MBV

andere hosting? }>

Acties:
  • 0 Henk 'm!

  • Trefwoord
  • Registratie: Augustus 2001
  • Laatst online: 23:48

Trefwoord

blader, blader...

het levert toch juist problemen op als je je scripts heb geschreven voor register_globals ON terwijl de server de register_globals op OFF heeft staan
:?
Overigens heeft blueyellow ook een goed supportforum voor dit soort vragen. x

-ik gebruik import_request_variables(), dat werkt voor zowel de on als de off instelling

[ Voor 21% gewijzigd door Trefwoord op 17-04-2003 23:28 ]

...gevonden!


Acties:
  • 0 Henk 'm!

Verwijderd

Evil M@V schreef op 17 April 2003 @ 23:19:
ini_set("register_globals","0");
In principe werkt dat bij niemand.
Dit komt doordat php eerst die globals verwerkt (met de standaard instelling) en dan het script gaat runnen.
Dus als je die setting met ini_set in je script gaat wijzigen ben je al te laat.

Je zou natuurlijk je eigen functies kunnen maken die al je meegegeven vars in de array's _POST, _GET, etc zet en de variabelen zelf unset.

Acties:
  • 0 Henk 'm!

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18

djc

$_POST en $_GET worden sowieso gevuld. Je kunt eventueel een simpel scriptje loslaten op de globale variabelen (maar eigenlijk maakt het dus weinig uit voor je script - behalve dat er misschien kleine veiligheidsgaatjes vallen).

PHP:
1
2
3
foreach ($_GET as $k => $v) {
     unset($$k);
}

Rustacean


Acties:
  • 0 Henk 'm!

  • Mavvie
  • Registratie: Maart 2001
  • Laatst online: 10-05-2021
Manuzhai schreef op 17 April 2003 @ 23:26:
$_POST en $_GET worden sowieso gevuld. Je kunt eventueel een simpel scriptje loslaten op de globale variabelen (maar eigenlijk maakt het dus weinig uit voor je script - behalve dat er misschien kleine veiligheidsgaatjes vallen).

PHP:
1
2
3
foreach ($_GET as $k => $v) {
     unset($$k);
}
Dit scriptje kan ik bij iedere variable doen? dus
PHP:
1
2
3
foreach ($_SESSIONS as $k => $v) { 
     unset($$k); 
}

Twitter | Linkedin


Acties:
  • 0 Henk 'm!

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18

djc

Evil M@V schreef op 17 April 2003 @ 23:28:
Dit scriptje kan ik bij iedere variable doen? dus
PHP:
1
2
3
foreach ($_SESSIONS as $k => $v) { 
     unset($$k); 
}
Als het goed is wel... Ik heb het niet getest ofzo, maar het zou gewoon moeten werken. :)

Rustacean


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

dat zou geen bal uit moeten maken zolang je er maar voor zorgt dat je indexes voor session en cookievars maar niet elders gebruikt als gewone variabelen:

globals off:

PHP:
1
2
3
4
5
$_SESSION['blaat'] = 1;

$blaat = 2;

echo $_SESSION['blaat']; // 1


globals on:

PHP:
1
2
3
4
5
$_SESSION['blaat'] = 1;

$blaat = 2;

echo $_SESSION['blaat']; // 2

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Mavvie
  • Registratie: Maart 2001
  • Laatst online: 10-05-2021
crisp schreef op 17 April 2003 @ 23:33:
dat zou geen bal uit moeten maken zolang je er maar voor zorgt dat je indexes voor session en cookievars maar niet elders gebruikt als gewone variabelen:

globals off:

PHP:
1
2
3
4
5
$_SESSION['blaat'] = 1;

$blaat = 2;

echo $_SESSION['blaat']; // 1


globals on:

PHP:
1
2
3
4
5
$_SESSION['blaat'] = 1;

$blaat = 2;

echo $_SESSION['blaat']; // 2
He? dit snap ik ff niet, je kunt bijvoorbeeld

$_POST['blaat'];

niet gebruiken met register_globals ON?

Twitter | Linkedin


Acties:
  • 0 Henk 'm!

Verwijderd

Evil M@V schreef op 17 April 2003 @ 23:38:
[...]


He? dit snap ik ff niet, je kunt bijvoorbeeld

$_POST['blaat'];

niet gebruiken met register_globals ON?
Dat bedoelt hij niet.

Met r_g ON kan je $_GET["bla"] ook benaderen als $bla.
Dus (volgens hem) kan je dan $bla niet in je script vullen, zonder dat $_GET["bla"] veranderd.
Wat ik overgens betwijfel, maar ik zou zeggen, test het!

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

Verwijderd schreef op 17 April 2003 @ 23:41:
[...]

Dat bedoelt hij niet.

Met r_g ON kan je $_GET["bla"] ook benaderen als $bla.
Dus (volgens hem) kan je dan $bla niet in je script vullen, zonder dat $_GET["bla"] veranderd.
Wat ik overgens betwijfel, maar ik zou zeggen, test het!
en jij denkt dat ik dat zelf niet eerst getest heb?

neem van mij aan dat het zo is! :)

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • me1299
  • Registratie: Maart 2000
  • Laatst online: 21:55

me1299

$ondertitel

Wat maakt dat nou uit dat het aanstaat? Je bent dan nog prima in staat om er zelf geen gebruik van te maken in je scripts. Alles zal dan nog naar behoren werken ;)

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


Acties:
  • 0 Henk 'm!

Verwijderd

Precies wat crisp zegt. Als je bij jou lokaal met register_globals op off, en error_reporting op E_ALL je scripts zonder warnings aan het werk krijgt, dan maakt het niet veel uit of het op de server waarop het uiteindelijk moet draaien aan of uit staat. Dat geldt voor zowel error_reporting als register_globals uiteraard.

Misschien kun je trouwens wel met een .htaccess die instelling voor bepaalde files/directories wijzigen? Niet dat het uiteindelijk iets uit zou maken (zie crisps verhaal), maar dat is dan voor jouw veiligheidsgevoel :P

Acties:
  • 0 Henk 'm!

  • me1299
  • Registratie: Maart 2000
  • Laatst online: 21:55

me1299

$ondertitel

dit moet je dan in je htaccess file smijten:

code:
1
php_value register_globals 0

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


Acties:
  • 0 Henk 'm!

Verwijderd

crisp schreef op 17 april 2003 @ 23:45:
en jij denkt dat ik dat zelf niet eerst getest heb?
Het leek me zo onwaarschijnlijk.
neem van mij aan dat het zo is! :)
Ok :).

Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 10-08 02:59

Gerco

Professional Newbie

Verwijderd schreef op 18 april 2003 @ 01:03:
Precies wat crisp zegt. Als je bij jou lokaal met register_globals op off, en error_reporting op E_ALL je scripts zonder warnings aan het werk krijgt, dan maakt het niet veel uit of het op de server waarop het uiteindelijk moet draaien aan of uit staat.
Voor de functionaliteit niet nee, maar als ik in mn page zo doe wel:
PHP:
1
2
3
4
5
// Check zooi

if($access) {
  // Restricted zooi
}

En iemand roept mn script aan met blabla.php?access=1 en register_globals staat aan terwijl ik het uit verwachtte, gaat er wel degelijk het een en ander mis. Ik geef toe dat het een slechte constructie is om het uberhaupt zo te doen, maar dit geld natuurlijk ook voor andere variabelen en het is bijna niet te voorspellen of het een impact zal hebben. Ik zou er op gokken van wel en de bijhorende maatregelen nemen, alles eerst unsetten dus.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

  • Boomerang
  • Registratie: November 2000
  • Niet online
Bij mijn scripts doe ik altijd het volgende:

PHP:
1
ini_set("register_globals","off");


Werkt volgensmij goed.. Maar waarom wil je eigenlijk register_globals op off hebben staan ? Volgensmij brengt het weinig voordelen met zich mee als alles goed loopt op je testserver met register_globals=off.

[ Voor 5% gewijzigd door Boomerang op 18-04-2003 11:02 ]


Acties:
  • 0 Henk 'm!

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 17-09 08:05
Boomerang schreef op 18 april 2003 @ 11:02:
Bij mijn scripts doe ik altijd het volgende:

PHP:
1
ini_set("register_globals","off");


Werkt volgensmij goed.. Maar waarom wil je eigenlijk register_globals op off hebben staan ? Volgensmij brengt het weinig voordelen met zich mee als alles goed loopt op je testserver met register_globals=off.
Dat werkt dus niet. Zie: http://nl.php.net/manual/en/function.ini-set.php

register globals kan alleen middels een .htaccess file veranderd worden of door php.ini te veranderen.

Register_globals = off is veiliger en de default instelling van php. Het is dan ook logisch om je scripts register_ globals = off compattible te maken.

[ Voor 3% gewijzigd door stekkel op 18-04-2003 11:17 . Reden: 1 typo minder ]


Acties:
  • 0 Henk 'm!

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:48

Crazy D

I think we should take a look.

Gerco schreef op 18 April 2003 @ 09:48:
Voor de functionaliteit niet nee, maar als ik in mn page zo doe wel:
PHP:
1
2
3
4
5
// Check zooi

if($access) {
  // Restricted zooi
}

En iemand roept mn script aan met blabla.php?access=1 en register_globals staat aan terwijl ik het uit verwachtte, gaat er wel degelijk het een en ander mis.
Als je $access boven in je script op false zet, wordt toch die waarde genomen, ipv de waarde uit de querystring?

Exact expert nodig?


Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 10-08 02:59

Gerco

Professional Newbie

Crazy D schreef op 18 April 2003 @ 13:27:
Als je $access boven in je script op false zet, wordt toch die waarde genomen, ipv de waarde uit de querystring?
Maar als ik er vanuit ga dat de default waarde van $access geen true is, zet ik $access alleen op true als er access gegeven moet worden. Nu even niet roepen dat je met E_ALL warnings krijgt en dat deze techniek slecht programmeren is, dat weet ik ook wel. Het gaat erom dat register_globals on voor onverwachte problemen kan zorgen in een app wat gemaakt is met register_globals off.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 18-09 14:45
Ergo: neem nooit een beginwaarde zomaar aan. Definieer je vars eerst, zeker als ze belangrijk zijn (maar dat wist je al). Al dat losely typed is leuk, maar levert imho toch ook vaak gezeik op (ook in bv JavaScript): dan weer is het omdat er plotseling een auto-conversie wordt gedaan en dan weer om dit soort ellende.

Daarnaast heeft PHP een paar vreselijk irritante 'features'. Register globals is er één van, magic quotes is de andere wat mij betreft.

Acties:
  • 0 Henk 'm!

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:48

Crazy D

I think we should take a look.

Gerco schreef op 18 april 2003 @ 18:52:
Het gaat erom dat register_globals on voor onverwachte problemen kan zorgen in een app wat gemaakt is met register_globals off.
Dat is absoluut waar ja, hoewel je als je altijd je vars netjes initializeert dat wel meevalt, er kunnen gekke dingen gebeuren ja :) (maar ja, als je de config niet kunt aanpassen....)

Exact expert nodig?

Pagina: 1