| |||
Verificar origen al recibir variables via post ¿Es posible mediante algun metodo en php verificar que una variable enviada via POST haya sido enviada desde el mismo sitio web donde se está recibiendo o que haya sido enviada desde un formulario en un sitio web externo?
__________________ El conocimiento es libre: Movimiento por la Devolución |
| |||
En principio tienes la variable de servidor: HTTP_REFERER Esa variable que puedes acceder por: $_SERVER['HTTP_REFERER'] te entrega la pàgina referida .. (URL completo con dominio ..) Pero, .. ese dato no es entregado por algunos servidores HTTP a PHP por qué estos no pueden obtenerla; algunos firewall, proxys y demás suelen no entregar dicha información o bien la modifican (hasta podrías "suplantar" por ese mismo método cualquier "referer"). Todo esto son parte de las cabeceras HTTP que se envian al realizar una conexión a una págia por parte del cliente ..por eso todo es modificable (hasta con PHP). Lo más sano si se refiere a scripts que se han de ejecutar en el mismo servidor por llamadas de otras páginas del mismo sitio sería la de usar sesiones, donde las defines en la generación de tu formulario por ejemplo y verificas su existencia en el script PHP de proceso de esos datos. Un saludo, |
| ||||
Lo mejor sería que en una variable $HTTP_REFERER des cuenta de la dirección donde acabaste de enviar la información. Por ejemplo, si tienes una página php llamada http://www.sitio.com/formulario.php y este formulario lo mandas a http://www.sitio.com/enviado.php, tienes que poner la instrucción de $HTTP_REFERER donde sino viene la información de formulario.php, simplemente no lo subes. Con esto te evitas broncas. Eso si, cersiórate que la URL sea exactamente igual a lo que quieres confirmar, porque sinó no pasa. |