http_user_agent http_referer example php referrer

http_referer - Inspeccione el referente en PHP



http_user_agent php (4)

Debe examinar la matriz $ _SERVER para la clave ''HTTP_REFERER''.

¿Es posible verificar quién está ingresando a su sitio web en PHP? Tengo una aplicación web (escrita en PHP) que solo debería permitir a los usuarios ingresar desde algunos sitios web en particular. ¿Es posible obtener los sitios web de referencia examinando el objeto _Request ? Si es así, ¿cómo?


No puedes confiar en el referente. A pesar de proceder de la matriz $_SERVER , en realidad se trata de un valor proporcionado por el usuario / navegador y es fácil de falsificar, usando cosas como el complemento RefControl de Firefox.


Si bien puede ver $_SERVER[''HTTP_REFERER''] para obtener el sitio de referencia, no apueste por la granja. El navegador establece este encabezado y es fácilmente falsificado.

Si es fundamental que solo las personas provenientes de referentes específicos vean su sitio, no use este método. Deberá buscar otra forma, como autenticación básica, para proteger su contenido. No digo que no deba usar esta técnica, solo tenga en cuenta que no es infalible.

Por cierto, también puedes bloquear las referencias en el nivel de apache usando mod_rewrite .


Sí, pero tenga en cuenta que algunos proxies y otras cosas eliminan esta información, y puede falsificarse fácilmente. Así que nunca confíes en eso. Por ejemplo, no piense que su aplicación web es segura desde CSRF porque verifica la referencia para que coincida con su propio servidor.

$referringSite = $_SERVER[''HTTP_REFERER'']; // is that spelt wrong in PHP ?

Si solo desea permitir solicitudes de un dominio específico, deberá analizar parte de la URL para obtener el dominio de nivel superior. Como he aprendido más, esto se puede hacer con PHP parse_url () .

Como andyk señala en los comentarios, también deberá permitir www.example.com y example.com.