Re: [linux] php4 et apache2

2005-05-16 Thread Benoît Barbier
On Sun, 15 May 2005 18:19:18 +0200
Bruno Berteau <[EMAIL PROTECTED]> wrote:


> Quelqu'un aurait une idée des options à changer pour revenir à 
> la normale.


La normal depuis PHP 4.2.0 c'est :

register_globals = Off 

Cf.

http://www.php.net/manual/fr/security.globals.php


http://www.php.net/manual/fr/ini.core.php#ini.register-globals

http://www.php.net/manual/fr/language.variables.external.php


Cf.Tableaux superglobaux de PHP

http://www.php.net/manual/fr/language.variables.predefined.php#language.variables.superglobals


Il faut bien dire qu'on ne peux pas toujours changer les anciens codes, et que
la doc n'est vraiment pas 
claire! :-(



-- 
Benoît
___
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


RE: [linux] php4 et apache2

2005-05-16 Thread Fabian Vilers

> 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".

Fabian


___
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


Re: [linux] php4 et apache2

2005-05-16 Thread Pascal Bleser
-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