Foros del Web » Programando para Internet » PHP »

Verificar origen de formulario

Estas en el tema de Verificar origen de formulario en el foro de PHP en Foros del Web. Hola: Quisiera poder validar que el formulario que recibo en mi archivo php provenga de mi servidor y no de otro. Cómo lo hago?? Pensé ...
  #1 (permalink)  
Antiguo 26/01/2010, 17:59
Avatar de Danielfuzz  
Fecha de Ingreso: septiembre-2007
Mensajes: 111
Antigüedad: 12 años, 2 meses
Puntos: 18
Pregunta Verificar origen de formulario

Hola:
Quisiera poder validar que el formulario que recibo en mi archivo php provenga de mi servidor y no de otro. Cómo lo hago??

Pensé usar HTTP_REFERER pero leyendo en el foro leí que puede ser vulnerado.

También leí que se podría usar sesiones, es decir en el archivo del formulario, inicio la sesion con un valor y en el archivo php verifico la sesion. Mi duda está en:

si le doy un valor arbitrario a la sesion, cómo mando ese valor al php para que despues sea comparado con el valor almacenado en la sesion??
no creo que sea por un hidden ya que estaría visible (en el código HTML) para el que desee verlo

existe algún problema con esto??
que sugieren??
  #2 (permalink)  
Antiguo 26/01/2010, 18:01
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 10 años, 4 meses
Puntos: 150
Respuesta: Verificar origen de formulario

Yo te sugieron que leas bien un tutorial de sesiones, porque no solo te va a servir para eso sino para muchas cosas mas:
http://www.desarrolloweb.com/articulos/235.php

Trata de programar algo y nos cuentas como va
  #3 (permalink)  
Antiguo 26/01/2010, 19:27
Avatar de Danielfuzz  
Fecha de Ingreso: septiembre-2007
Mensajes: 111
Antigüedad: 12 años, 2 meses
Puntos: 18
Respuesta: Verificar origen de formulario

Hola Vun, gracias por tu pronta respuesta.

te comento que no tengo problema con el manejo de sesiones. El problema es mas lógico. Pero ya se me "prendió el foco" de como hacerlo.

1.- Genero una cadena arbitraria x
2.- Guardo la cadena arbitraria en una session
3.- en el formulario a mandar me creo un campo hidden con el MD5 de la cadena arbitraria previamente guardada en la session. (OJO la cadena guardada en la session no está en MD5, sólo la de el campo hidden)
4. el archivo php que recepciona los datos recupera el valor de la session y la codifica con MD5 y la compara con la cadena recibida del formulario (del campo hidden).

Saludos.

Tema Solucionado!!
  #4 (permalink)  
Antiguo 26/01/2010, 19:58
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 395
Antigüedad: 11 años, 10 meses
Puntos: 11
Respuesta: Verificar origen de formulario

hay una tecnica llamda token pa hacer eso

Código PHP:
<?php
authToken sha1 $authToken sha1 (
 
session_id ( ) .
 
phpversion ( ) .
 
$dbName .
  
REMOTE_ADDR _SERVER '']. $_SERVER 'REMOTE_ADDR' ] .
  
HTTP_USER_AGENT _SERVER ''$_SERVER 'HTTP_USER_AGENT' ]); 

if (isset ($ 
_POST 'submit'])) if ( isset ( $_POST 'submit' ] ) )

{
  if (isset ($ 
_POST 'auth_token']) & & $ _POST 'auth_token'] == $ authToken) if ( isset ( $_POST 'auth_token' ] ) && $_POST 'auth_token' ] == $authToken )
   {
    
//Proceso de forma 
   
}
  
algo m&#225;s else
 
{
    
//Mensaje de error de visualización 
  
}
 }
 
?>

<form id="form" method="post" action="./"> <form id="form" method="post" action="./">
  <fieldset> <fieldset>
    <label for="name"> Nombre: </ label> <label for="name">Name:</label>
    <input type="text" name="name" id="name" valor=""/> <input type="text" name="name" id="name" value=""/>
  </ fieldset> </fieldset>
  <fieldset> <fieldset>
    valor <input type = "hidden" name = "auth_token" = "<? php echo $ authToken?>" /> <input type="hidden" name="auth_token" value=" <?php echo $authToken ?> "/>

    <input type="submit" name="submit" value="Submit"/> <input type="submit" name="submit" value="Submit"/>
  </ fieldset> </fieldset>
</ form> </form>
el codigo lo rompio tudu el traductor de google quita lo que se duplica parece buen codigo

mas links http://www.google.es/search?q=token+...ed=0CCYQ_wEwCg

saludos

Etiquetas: origen, verificar, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 15:37.