9
votes

Quelle est la sécurité d'un en-tête redirige? Peut-il être contourné?

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')
}


2 commentaires

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.


3 Réponses :


0
votes

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.


0 commentaires

8
votes

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?

Bien sûr - plutôt que terres sur cette page (qu'il a déjà), oubliant un sortie () signifie que le client peut toujours voir toutes les données émises après ces lignes. Personne ne peut force le client pour partir immédiatement après avoir reçu un Emplacement: en-tête. Cette action est entièrement volontaire.


0 commentaires

0
votes

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 sortie; après avoir envoyé un en-tête ('emplacement ...') .

Voir la fonction PHP: Headers_sent


0 commentaires