Comment sécurisez-vous les redirections d'en-tête? Si je comprends bien, les informations d'en-tête indiquent le navigateur quoi faire. Par conséquent, si l'emplacement de l'en-tête est défini sur un autre endroit, le navigateur peut-il toujours être effectué pour atterrir sur la page initiale?
if(!$loggedin){ header('Location: someotherpage.php') }
3 Réponses :
Oui, définitivement. C'est pourquoi un autre devrait suivre (ou une sortie) après une redirection dans le cas où vous souhaitez éviter de montrer des informations illégitimes. Si l'on utilise une demande personnalisée, ils peuvent facilement afficher ce qui suit après une demande de redirection, c'est un énorme problème de sécurité standard. P>
Si quelqu'un, la toux de la toux) a oublié d'utiliser une commande de sortie après l'en-tête, une personne pourrait toujours atterrir sur cette page? p> blockQuote>
Bien sûr - plutôt que terres em> sur cette page (qu'il a déjà), oubliant un
sortie () code> signifie que le client peut toujours voir em> toutes les données émises après ces lignes. Personne ne peut force em> le client pour partir immédiatement après avoir reçu un
Emplacement: code> en-tête. Cette action est entièrement volontaire. P>
Oui. Il serait possible de toujours atterrir sur cette page, vous ne pouvez pas forcer «l'emplacement». Il est également possible de "accidentellement" charger le reste de la page si la page jette les "en-têtes déjà envoyées".
Il est une bonne pratique d'utiliser Voir la fonction PHP: Headers_sent P> sortie; code> après avoir envoyé un en-tête
('emplacement ...') code>. P>
Vous pouvez trouver addons.mozilla.org/en-us/firefox/addon/ Noredirect Un addon utile pour Firefox. Cela vous permettra de voir ce qui est vraiment envoyé. J'ai vu des sites (que j'ai la permission de tester) permettant à l'ensemble des interfaces administratives peuvent être utilisés anonymement, car ils redirigent-sans-sortie sur la page de connexion.
Merci CheekySoft. C'est exactement ce que je cherchais.