Foros del Web » Programando para Internet » PHP »

problema al extraer input y volver a insertar con php y curl

Estas en el tema de problema al extraer input y volver a insertar con php y curl en el foro de PHP en Foros del Web. hola a todos tengo un pequeño script hecho en php, utilizo la funcion curl para iniciar sesion en otra web y guardar la cookie por ...
  #1 (permalink)  
Antiguo 30/01/2013, 11:29
Avatar de ahaugas  
Fecha de Ingreso: agosto-2011
Ubicación: Madrid
Mensajes: 249
Antigüedad: 8 años, 4 meses
Puntos: 21
Pregunta problema al extraer input y volver a insertar con php y curl

hola a todos tengo un pequeño script hecho en php, utilizo la funcion curl para iniciar sesion en otra web y guardar la cookie por si tengo que gestionar algo.

el script en si funciona bien, pero tengo un problena con las llaves aleatorios de los formularios que estan el los input hidden.

he intentado extraerlo con domdocument y con file_get_contents() pero cambia cada vez que quiero insertar los datos y no me lo hace bien.

dejo la funcion por si ven algo o me pueden indicar un poco.
Código PHP:
      function login_misitio($username$password)
      {
            
$login_url 'http://www.misitio.com/account';
            
$cookie    "cookie.txt";
            
            
$contents file_get_contents($login_url);
            @
$dom = new DOMDocument();
            @
$dom->loadHTML($contents);

            
$xpath = new DOMXPath($dom);

            
$tags $xpath->query('//input[@name="_csrf_token"]');
            foreach (
$tags as $tag) {
                
$return_token = (trim($tag->getAttribute('value')));
            }

            
$ch curl_init();
            
curl_setopt ($chCURLOPT_URL$login_url);
            
curl_setopt ($chCURLOPT_POSTtrue);
            
curl_setopt ($chCURLOPT_POSTFIELDS, array('username' => $username'password' => $password'remember_me' => '1''_csrf_token' => $return_token));
            
curl_setopt ($chCURLOPT_FOLLOWLOCATIONtrue);
            
curl_setopt ($chCURLOPT_RETURNTRANSFER1);
            
curl_setopt ($chCURLOPT_COOKIEJAR$cookie);
            
curl_setopt ($chCURLOPT_COOKIEFILE$cookie); //saved cookies
            
$result curl_exec ($ch);
            
print_r($result); // output?
            
curl_close($ch);
      } 
espero que me puedan ayudar
gracias de antemano
__________________
www.ahaugas.com mi pagina de desarrollo
  #2 (permalink)  
Antiguo 31/01/2013, 04:55
Avatar de ahaugas  
Fecha de Ingreso: agosto-2011
Ubicación: Madrid
Mensajes: 249
Antigüedad: 8 años, 4 meses
Puntos: 21
Respuesta: problema al extraer input y volver a insertar con php y curl

no se si me habeis entendido bien pero voy a explicarme un poco mejor.

tengo una web con un formulario de acceso con su usuario y clave, pero aparte tambien tiene un input type hidden con un key token unico para cada vez que se actualize la pagina y no poder volver a enviar los mismos datos cuando se refresque la pagina ó si hay ataques de fuerza bruta.

Código HTML:
Ver original
  1. <form name="loginUser" action="/user/login.php" method="post">
  2.                 <p>
  3.                     <label for="username">Username:</label>
  4.                     <input type="text" name="username" />
  5.                 </p>
  6.                
  7.                 <p>
  8.                      <label for="password">Password:</label>
  9.                      <input type="password" name="password" />
  10.                 </p>
  11.                
  12.                 <p>
  13.                     <label>&nbsp;</label>
  14.                     <input type="hidden" name="_csrf_token" id="csrf_token" value="95dc869cbdebb9dd3d29d2d7350933fa" />                    <input type="submit" value="Login" class="submit" />
  15.                 </p>
  16.  
  17.                 </form>

lo que me falla, es a la hora de iniciar sesion mediante curl desde mi otra web para gestionar datos, por que me dice que la clave "csrf_token" no es valida.

habria alguna manera de extraer el csrf_token y volver a enviarlo mediante curl?

el caso es que no quiero desactivar elcsrf_token por cuestiones de seguridad.

gracias
__________________
www.ahaugas.com mi pagina de desarrollo

Etiquetas: curl, formulario, html, input, volver
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




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