Teniendo en cuenta el cliente (navegador del usuario), puede enviar lo que quiera, yo diría que no hay manera de estar seguro de qué página web la secuencia de comandos se llama desde:
- Como usted quiere saber la URL de el sitio web de la incrustación de su widget, y no la dirección del usuario,
$_SERVER['REMOTE_HOST']
no ayudarán
$_SERVER['HTTP_REFERER']
podría parecer bien, pero en realidad no lo es:
- el cliente no tiene que enviar (y que doesn' t siempre lo hace)
- Como es enviado por el cliente, que puede ser forjado/falsificada con bastante facilidad
Por lo tanto, yo diría que no hay una solución real a este problema, al menos en el lado del servidor (Si estoy equivocado, estoy interesado en saber)
Pero tal vez pueda hacer algo en el lado del cliente: al escribir todo esto, pensé en los mapas de Google, y es el sistema de API Key:
- tiene una clave API (única) cuatro su dominio
- Cuando carga las secuencias de comandos JS de google, envíe esta clave
- si la clave no está registrada para el dominio en el que intenta mostrar el mapa, hay un mensaje
alert
, que dice "El servidor API de Google Maps rechazó su solicitud. Esto podría deberse a que la clave API utilizada en este sitio se registró para un sitio web diferente. "
- pero el mapa parece que se mostrará todos modos - al menos en mi servidor de prueba
- este
alert
es realmente anoying para el usuario final, y yo no creo que nadie lo haría quieren una alerta que aparece en su sitio porque están utilizando su autorización withot servicio ...
Tal vez se puede echar un vistazo a cómo se hace esto para google maps :-)
$ _SERVER ['REMOTE_HOST'] no funciona, ya que devuelve los detalles del cliente (usuarios web) y no los detalles del sitio web que realiza la solicitud GET, que es lo que necesito. –