Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: OssoH en 10 Abril 2014, 13:02 pm



Título: conocer la url de la cual procede una llamada $ajax
Publicado por: OssoH en 10 Abril 2014, 13:02 pm
Hola :
Tengo una aplicación php que consiste en rellenar un formulario con una serie de campos que luego son enviados por $AJAX POST y la función test1.php es la que guarda esos datos en mysql.
Mi pregunta es : ¿cómo puedo saber dentro del fichero test1.php desde que url se ha llamado al javascript AJAX POST?
El motivo es intentar evitar que alguien desde un servidor local en su casa se cree un procedimiento para que esté constantemente enviandome datos a la base de datos.

Código:
    $.ajax({
          type: "POST",
          url: "test1.php",
          data: dataString,
          success: function() {
           
          }
         });

Gracias


Título: Re: conocer la url de la cual procede una llamada $ajax
Publicado por: EFEX en 11 Abril 2014, 00:41 am
Podes generar tokens utilizando sessiones y validar los que genero el server, creo que tambien se puede agregar una regla con .htaccess? pero mejor si alguien del foro que sepa mas pueda responder...

http://phpsecurity.org/code/ch02-5


Título: Re: conocer la url de la cual procede una llamada $ajax
Publicado por: OssoH en 11 Abril 2014, 09:58 am
Gracias por el consejo. Lo voy hacer de esa forma que dices.


Título: Re: conocer la url de la cual procede una llamada $ajax
Publicado por: OssoH en 11 Abril 2014, 11:38 am
Perdonar pero sigo teniendo una duda.
He visto el enlace y veo que genera un token distinto cada vez tal y como debe ser. Pero claro...¿como compruebo en el php de destino que ese token es valido?


EDITO : Vale, ya lo tengo claro, seria usando la variable $_SESSION.


Título: Re: conocer la url de la cual procede una llamada $ajax
Publicado por: OssoH en 11 Abril 2014, 14:00 pm
Creo que no va ser necesario todo esto del token.
Ya que por defecto solo se admite llamadas dentro del mismo fichero.
Y si quisiera que esto no fuese así  ( es lo llamado crossdomain) tendría que agregar en el php destino lo siguiente

Código:
<?php header('Access-Control-Allow-Origin: *'); ?>

¿esto en lo correcto?