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é ?

Le code PHP s'exécute-t-il après une redirection « header('Location : ...') » et comment cela peut-il être évité ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-09 11:32:19910parcourir

Does PHP Code Execute After a `header('Location: ...')` Redirect, and How Can This Be Prevented?

É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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn