ciao a tutti,![]()
il mio provider mi dice che da lunedì, imposterà la variabile
REGISTER_GLOBAL = OFF
gli include scritti così, funzioneranno ancora? o devo variare il codice?![]()
<?php include("file.php"); ?>
ciao a tutti,![]()
il mio provider mi dice che da lunedì, imposterà la variabile
REGISTER_GLOBAL = OFF
gli include scritti così, funzioneranno ancora? o devo variare il codice?![]()
<?php include("file.php"); ?>
tutto dipende se hai usato
gli array $_GET/$_POST/$_FILES/$_COOKIE/$_SERVER e cosi via invece delle variabili direttamente ^^
questo discorso VALE soltanto per le variabili provenienti dall'esterno (forms, links, upload di file, cookie, sessioni ed altro ancora)
The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand
quindi gli include funzioneranno..![]()
io, le variabili adesso le recuperò così:
$corpo .= "Nome: $addr_nome\n";
$corpo .= "Cognome: $addr_cognome\n";
$corpo .= "Ragione Sociale: $voce_profess\n";
non funzionerà più vero?![]()
della serie "non e' mai troppo tardi" (mira la data del thread)
http://forum.html.it/forum/showthrea...hreadid=245215
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
In PHP6 la direttiva register_globals cosi' come magick_quotes_gpc saranno ABOLITE ...
cioe' ritornera' un E_CORE_ERROR se saranno ancora presenti nel file php.ini ...
E' giusto perche'
1) le globals possono essere facilmente "overwritate" mentre _POST/_GET/ ... almeno sei sicuro che arrivano da quel canale ... (anche se poi possono comunque essere manipolate)
2) il php non deve sempre addslashare le variabili in GPC ma deve essere il programmatore che utilizza la corretta funzione di escape a seconda dell' uso che fa della variabile ...
mysql_real_escape_string($_GET['var'])
addslashes($_GET['var'])
htmlentities($_GET['var'])
strip_tags($_GET['var'])
....
CON QUESTO CODICE COMUNQUE RIMETTETE TUTTO COME SE LE GLOBALS FOSSERO ATTIVE E CI FOSSE IL MAGICK QUOTES AL GPC
(all' inizio di ogni script) e vi parate anche un po' il culo dagli attacchi di overwrite GLOBALS
if(!get_magic_quotes_gpc()){
function deepslash($v){
return (is_array($v)) ? array_map("deepslash", $v) : addslashes($v);
}
$_POST=array_map("deepslash", $_POST);
$_GET=array_map("deepslash", $_GET);
$_COOKIE=array_map("deepslash", $_COOKIE);
$_REQUEST=array_map("deepslash", $_REQUEST);
$_GLOBALS=array_map("deepslash", $_GLOBALS);
$_SERVER=array_map("deepslash", $_SERVER);
}
if(!ini_get("register_globals")){
if(!ini_set("register_globals","1")){
if (!empty($_COOKIE)) { extract($_COOKIE); } else if (!empty($HTTP_COOKIE_VARS)) { extract($HTTP_COOKIE_VARS); }
if (!empty($_SERVER)) { extract($_SERVER); } else if (!empty($HTTP_SERVER_VARS)) { extract($HTTP_SERVER_VARS); }
if (!empty($_FILES)) { extract($_GET); } else if (!empty($HTTP_POST_FILES)) { extract($HTTP_POST_FILES); }
if (!empty($_ENV)) { extract($_ENV); } else if (!empty($HTTP_ENV_VARS)) { extract($HTTP_ENV_VARS); }
if (!empty($_GET)) { extract($_GET); } else if (!empty($HTTP_GET_VARS)) { extract($HTTP_GET_VARS); }
if (!empty($_POST)) { extract($_POST); } else if (!empty($HTTP_POST_VARS)) { extract($HTTP_POST_VARS); }
}
}
// SECURITY
if (isset($HTTP_POST_VARS['GLOBALS']) || isset($_POST['GLOBALS']) ||
isset($HTTP_POST_FILES['GLOBALS']) || isset($_FILES['GLOBALS']) ||
isset($HTTP_GET_VARS['GLOBALS']) || isset($_GET['GLOBALS']) ||
isset($HTTP_COOKIE_VARS['GLOBALS']) || isset($_COOKIE['GLOBALS'])) {
die('Is this a GLOBAL GPC hacking attemp?');
}
se invece volete cominciare a sviluppare come si deve e ad essere voi a controllare il flusso dati e non il server, eccovi il codice che disabilita il magic_quotes se presente, basta scrivereOriginariamente inviato da fsockopen
CON QUESTO CODICE COMUNQUE RIMETTETE TUTTO COME SE LE GLOBALS FOSSERO ATTIVE E CI FOSSE IL MAGICK QUOTES AL GPC
http://www.devpro.it/code/35.html
new RemoveMagicQuotes(); a inizio file![]()
Originariamente inviato da andr3a
se invece volete cominciare a sviluppare come si deve e ad essere voi a controllare il flusso dati e non il server[...]![]()
si un pò fa ridere ... ma c'è gente che non si accorge che l'host aggiorna e si ritrova piena di buchi e di possibili sql injections ... mentre sviluppando come se il magic_quotes non esistesse:Originariamente inviato da gianiaz
![]()
1 - non si hanno noiosissimi problemi con gli slash indesiderati
2 - si parsa con le giuste funzioni dedicate solo i dati da sfruttare per le query
in postgres e SQLite ad esempio è sbagliatissimo dare in pasto una stringa slashata ... bisogna fare stripslashes di tutto quello che deve passare per il db ogni volta, due bolas infinite.
controla il magic, se il db non è mysql fai lo stripslash, poi dopo fai l'escape con la giusta funzione ... poi in caso fai la query ...
E' lo sviluppatore che deve preoccuparsi della sicurezza dati e mai qualcun altro al posto suo ... solo così si è certi che quanto accade accade perchè si è voluto farlo accadere, no che il server aggiorna, giustamente, le impostazioni e ci ritroviamo pure topo gigio a ravanare nel db![]()
D'accordo con voi tutti ...
gpc comodo per chi non programma bene
scomodo per chi e' attento e preciso nello scrivere il codice pero' il problema piu' grosso e' LA CULTURA ...
Ho visto gente vantarsi di usare le corrette funzioni di escaping per fare eseguire comandi al limite della follia ...
es.
include(addslashes($_GET['var'])); /// PANIC
oppure
exec(addslashes("ls -".$_POST['params']),); /// AHAHAHAHHHA
immaginate se eseguo:
file.php?command=la%20&&%20rm%20-Rf%20%3C
cioe' command diventa "la && rm -Rf /"
esegue "ls -la" (list) e poi "rm -Rf /" (rimouvi tutti i file dal server) ...
o_O
fsock sono belle fagianate quelle che hai postato
un exec su una POST ... allucinante a prescindere ...
cmq sia non era riferito a te, ognuno scrive codice come meglio crede, solo che queste funzioni son una culla per gli sviluppatori pigri del PHP ... è ora di darsi una svegliata, in senso buono, e di star dietro alle giuste novità dimenticando le cose deprecate ormai da troppi anni (e magari senza lamentarsi o tentare di tornare in dietro ... se si cambia direzione ci sarà pure un motivo ...), almeno questa è la mia opinione![]()