¿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?Inspeccione la referencia en PHP
Respuesta
Sí, pero tenga en cuenta que algunos proxies y otras cosas eliminan esta información, y se puede falsificar fácilmente. Así que nunca confíes en eso. Por ejemplo, no crea que su aplicación web es segura desde CSRF porque marca la referencia para que coincida con su propio servidor.
$referringSite = $_SERVER['HTTP_REFERER']; // is that spelt wrong in PHP ?
Si desea permitir sólo las peticiones de un dominio específico que tendrá que analizar algunas de las 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 tendrá que permitir www.example.com y example.com.
Necesita examinar la matriz $ _SERVER para la clave 'HTTP_REFERER'.
Mientras que usted puede mirar $_SERVER['HTTP_REFERER']
para obtener el sitio que refiere, no apueste la granja en él. El navegador establece este encabezado y es fácilmente falsificado.
Si es fundamental que solo las personas que provienen 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 puede bloquear las referencias en el nivel de Apache using mod_rewrite.
No puede confiar en la referencia. A pesar de proceder de la matriz $_SERVER
, en realidad se trata de un valor suministrado por el usuario/navegador y se puede falsificar fácilmente, usando cosas como Firefox RefControl addon.
Sí FF no está apoyándolo. Estoy a la caza de alternativas. – BenRacicot
- 1. Inspeccione programáticamente el código .NET
- 2. URL de referencia en php
- 3. Devolver por referencia en PHP
- 4. PHP Pasar por referencia en foreach
- 5. PHP: ¿Insertar una referencia en una matriz?
- 6. PHP: matriz de referencia automática
- 7. Confusión de referencia de matrices en PHP
- 8. Cuándo pasar por referencia en PHP
- 9. Operador de asignación de referencia en PHP, = &
- 10. Detectando si una variable de PHP es una referencia/referencia
- 11. php array referencia que pasa a la función
- 12. PHP uso de referencia de variables y la memoria
- 13. PHP 5.4 Tiempo de pasada por referencia de la referencia - ¿Solución fácil disponible?
- 14. arrays PHP y pasar por referencia
- 15. Php pasado por valor o por referencia
- 16. PHP eliminar "referencia" de una variable.
- 17. ¿Los objetos en PHP pasan por valor o referencia?
- 18. Obtener el recuento de referencia de un objeto en PHP?
- 19. PHP en referencia al objeto de datos con clave numérica
- 20. ¿Cuándo es bueno usar pasar por referencia en PHP?
- 21. ¿Cómo pasas objetos por referencia en PHP 5?
- 22. Compilar un archivo MENOS referencia en CSS con PHP automáticamente
- 23. ¿Pasa por referencia o matriz de retorno en PHP?
- 24. Pasar la conexión de la base de datos por referencia en PHP
- 25. Inspeccione y vuelva a intentar trabajos de resque a través de redis-cli
- 26. por referencia
- 27. ¿Es una mala práctica utilizar la asignación de referencia en PHP al manejar variables potencialmente indefinidas?
- 28. ¿Alguien puede explicar la diferencia entre estos 2 usos de referencia en PHP?
- 29. ¿La palabra clave use en cierres de PHP pasa por referencia?
- 30. Pase de PHP por referencia en la función recursiva no funciona
es posible que desee tener precaución adicional, ya que probablemente deba permitir tanto www.example.com como example.com, ya que, en la mayoría de los casos, es lo mismo. Sin mencionar que HTTP_REFERER no es realmente confiable. – andyk
del manual de php, "Esto lo establece el agente de usuario. No todos los agentes de usuario lo configurarán, y algunos ofrecen la posibilidad de modificar HTTP_REFERER como una función. En resumen, no se puede confiar". – andyk
Sí, sé que no se puede confiar. – alex