cómo omitir "header" en php

2

Mientras leo un artículo encuentro algo interesante que no sabía:

if(!isset($_SESSION['usr_id']) || !isset($_SESSION['usr_name']))
{
    header('Location: index.php');
}
  

... Lo que está muy bien si el cliente respeta la ubicación   encabezamiento. El rastreador aparentemente no lo hace, porque en realidad no tiene   a. Lo malo es que cualquier rastreador, bot o navegador que pueda ignorar   los encabezados podrían pasar por alto toda la seguridad en su sitio.

Creo que es cierto, pero me preguntaba cómo puedo replicar los resultados. Básicamente, ¿cómo puedo probar que el navegador, el rastreador u otra cosa está ignorando el encabezado?

No estoy seguro de si esta pregunta pertenece aquí o al flujo de pila, pero creo que debido a la naturaleza de este sitio, existe una mayor probabilidad de que las personas sepan cómo evitar esto.

    
pregunta Salvador Dali 02.03.2013 - 20:13
fuente

2 respuestas

4

Primero, para aclarar, la descripción correcta es que el encabezado fue "ignorado" y no "omitido". Un encabezado es un dato que se transmite como parte de una respuesta HTTP, no es en sí mismo una puerta de enlace que controla el acceso.

Al menos uno de los comentarios en el artículo señala que el problema real aquí no es que el encabezado se haya ignorado, per se, sino que la aplicación no pudo salir en el punto en que se denegó la autenticación y solo se envió el encabezado. Continuaron compilando y enviando la respuesta completa como si el usuario estuviera autenticado correctamente, y confiaban en que el cliente redirigiría basándose en el encabezado sin leer el contenido del cuerpo. Esto es malo.

El comportamiento correcto habría sido enviar solo el encabezado (y el código de respuesta HTTP correspondiente) de modo que incluso si un cliente hizo optó por ignorarlo, lo haría No recibir contenido privilegiado con la respuesta.

Una vez que los datos salgan de su firewall, dejarán de ser tuyos, por lo que no enviará datos que no querría que alguien tuviera hasta que verifique quiénes son.

    
respondido por el Xander 02.03.2013 - 20:35
fuente
1

Puede probarlo con la extensión cURL en PHP o una forma más efectiva es utilizar un software que analice su script y ver qué acción realizó.

enlace

Más que eso, puede verificarlo con la herramienta de evaluación del servidor web: enlace

    
respondido por el Daniel Chernenkov 02.03.2013 - 20:34
fuente

Lea otras preguntas en las etiquetas