-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Fabian Vilers wrote: |>Il faut bien dire qu'on ne peux pas toujours changer les |>anciens codes, et que la doc n'est vraiment pas claire! :-( | | En effet, les variables passées avec script.php?variable=valeur ne sont plus | accessibles directement. Il faut passer par $_REQUEST["variable"]. Afin de | faire une transition en douceur, on peut imaginer l'utilisation de | extract($_REQUEST) au début de chaque script "ancienne mode".
Et la raison de cette modification est très clairement la sécurité. En effet, avec register_globals=On, toutes les variables passées par POST ou GET sont implicitement définies, ce qui permet d'influer sur du code PHP mal écrit. Or comme PHP ne force et ne permet (malheureusement, à mon sens) pas la déclaration statique de variables, c'est vite arrivé.
if ($foo == "foo") { ~ $x = 1; }
if ($x) { ~ // ... }
Dans le code ci-dessus, il manque la définition d'une valeur par défaut pour $x -- en effet, si $foo != "foo", $x n'est pas initialisé, sauf à "null" par défaut.
Or, si quelqu'un appelle ce script PHP en passant une valeur à $x: http://machin.pas.net/script.php?x=1 alors $x ne vaut pas implicitement "null" mais bien "1".
Enfin, soit, il vaut bien mieux explicitement extraire les variables passées par POST ou GET: $x = $_POST['x']; $y = $_GET['y']; $z = $_REQUEST['z'];
- -- ~ -o) Pascal Bleser http://linux01.gwdg.de/~pbleser/ ~ /\\ <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> ~ _\_v The more things change, the more they stay insane. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCiK3wr3NMWliFcXcRApkWAKCknE+zNdHcVr0nZntrY3BxNIgeDACcConb A2jCnmlVIHYJdntFOVCms+c= =UMlj -----END PGP SIGNATURE----- _______________________________________________________ Linux Mailing List - http://www.unixtech.be Subscribe/Unsubscribe: http://www.unixtech.be/mailman/listinfo/linux Archives: http://www.mail-archive.com/linux@lists.unixtech.be IRC: chat.unixtech.be:6667 - #unixtech NNTP: news.gname.org - gmane.org.user-groups.linux.unixtech