-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