Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Detecter l'utilisation de register_gl obals

1 réponse
Avatar
Sebastien
Bonjour,

Je reprends du code et je voudrais éliminer les cas d'utilisation de
register_globals pour pouvoir mettre cette directive à 0.

Malheureusement je ne vois pas de moyen de détecter les cas où des
variables apparemment anodines sont en fait des variables POST / GET...

Avez-vous des pistes ?



Sébastien

1 réponse

Avatar
John GALLET
Bonsoir,

Je reprends du code et je voudrais éliminer les cas d'utilisation de
register_globals pour pouvoir mettre cette directive à 0.


Soit. Noter que ça ne rendra pas nécessairement le site plus sécurisé pour
autant, bon vieux débat, donc quitte à se repalucher complètement le code,
c'est peut-être le moment d'y penser. Par exemple s'intéresser à
l'extension 'filter' enfin disponible dans la dernière release de PHP
(même si on ne s'en sert pas directement ça donne des idées).

Malheureusement je ne vois pas de moyen de détecter les cas où des
variables apparemment anodines sont en fait des variables POST / GET...


Pas évident à automatiser.

Avez-vous des pistes ?


D'abord vérifier s'il n'y a pas des "astuces" dans le code du genre appels
à ini_set() ou extract() ou des tripatouillages pour importer
automatiquement le contenu de _POST/_GET/_REQUEST/GLOBALS, sinon ça peut
durer longtemps.

Se mettre sur une plateforme de développement avec une config proche de
celle-ci:

- désactiver register_globals.
- mettre un niveau de trace à E_NOTICE
- activer la trace des erreurs dans un log (perdues dans la page html, on
les voit pas toujours, et ça centralise les erreurs détectées par tout
le monde).

Après il faut lire le code et tester.

On peut aussi passer un find . -type f -exec grep -l -i name {} ; afin
d'afficher tous les formulaires, ou href pour les liens simples, bref se
palucher tout ce qui peut d'une manière ou d'une autre transmettre des
variables depuis le client (get, post, cookie, js, pigeon voyageur etc.)

Bonne migration...
JG