Maison >développement back-end >tutoriel php >Le code PHP s'exécute-t-il après une redirection « header('Location : ...') » et comment cela peut-il être évité ?
Éviter l'exécution du code post-redirection en PHP
Lors de l'exécution de redirections à l'aide de la fonction header('Location:..') en PHP , il est courant d'inclure une sortie ; instruction par la suite pour empêcher l’exécution du code suivant. Cela soulève la question de savoir si le code après la fonction d'en-tête peut toujours être exécuté et, si oui, dans quels scénarios.
Le code post-redirection peut-il s'exécuter ?
Oui , le code après la fonction d'en-tête peut toujours être exécuté. La fonction d'en-tête envoie uniquement une demande de redirection au navigateur, mais le reste de la page sera toujours servi par PHP et pourra potentiellement être consulté par le client.
Comment empêcher l'exécution de code
Pour éviter l'exécution de code post-redirection, la sortie ; L'instruction doit être utilisée immédiatement après la fonction d'en-tête. Cela garantit que toute exécution de PHP s'arrête et que le serveur répond uniquement avec l'en-tête de redirection.
Exploitation par des utilisateurs malveillants
Un utilisateur malveillant peut ignorer l'appel d'en-tête en utilisant un client de ligne de commande comme wget avec l'option --no-redirect. Cela leur permet de visualiser le contenu de la page qui aurait été servi avant la redirection.
Bonne pratique
Il est donc essentiel de toujours utiliser la sortie ; déclaration après la fonction d'en-tête pour empêcher l'exécution du code post-redirection et se protéger contre les vulnérabilités de sécurité potentielles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!