Pregunta

Debo intentar y falsificar el HTTP_REFERER pasado mi otra página para que en la página de destino, puedo determinar si la solicitud viene desde la parte " derecha " página y realizar la lógica adecuada.

  1. ¿Cómo hago eso en JavaScript (AJAX)?
  2. ¿Puedo hacer eso en ASP.Net?

TIA carneros

¿Fue útil?

Solución

En términos generales, no puede hacer que otros navegadores devuelvan un HTTP_REFERER falso sin un exploit, un complemento u otra extensión. Si desea modificar el valor enviado desde su navegador web y está utilizando FireFox, consulte la extensión Modify Headers .

En cualquier caso, nunca debes confiar en que HTTP_REFERER sea preciso. No hay garantía de que el HTTP_REFERER que recibas no sea falso o simplemente no se envíe.

Otros consejos

Si desea probar en la página de destino si una solicitud proviene de " derecha " página, no es necesario falsificar la referencia. Todo lo que necesita hacer es emitir la solicitud desde una página diferente. Configura una página con una URL diferente de la que consideras que " derecha " uno, y emitir solicitudes desde allí, ya sea haciendo clic en un enlace a la página de destino o colocando una imagen procedente del destino.

Ya se ha mencionado que realmente no puedes falsificar cosas. Pero para aclarar, el encabezado HTTP_REFERER es generado por el navegador , por lo que en el lado del servidor no puedes controlarlo (incluidas las cosas que se transfieren de javascript, que pueden o no estar habilitadas). / p>

Si solo desea probar la respuesta de su página a ciertos encabezados (como " Referer: "), puede usar herramientas de línea de comandos como curl o wget que están disponibles en la mayoría de BSD y variantes de Linux (incluido OS / X). Si está utilizando MS Windows, puede obtener curl o wget utilizando Cygwin .

    wget -O - --referer="http://example.com/some/path" http://example.com/

o

    curl -e "http://example.com/some/path" http://example.com/

Pero su razón principal para hacer esto es aparentemente para " proteger " Una página, creo. Si realmente desea asegurarse de que una página (llámela " B ") solo se visita después de visitar otra página (" A ") primero, entonces necesita una lógica más compleja en el lado del servidor.

Si está almacenando una cookie de sesión, puede incrustar algo de lógica en la página " A " que establece una variable booleana. A continuación, agregue la lógica en la página " B " que verifica que la variable se haya establecido.

Lo dejaré como un ejercicio para que el lector descubra cómo hacer esto en ASP.NET. (Porque soy un programador de PHP. - -])

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top