Ver Mensaje Individual
  #5 (permalink)  
Antiguo 13/01/2016, 09:36
german_1441
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 4 años, 1 mes
Puntos: 20
Respuesta: "Seguridad" en Sitio

Gracias por la respuesta!

Cita:
Iniciado por pateketrueke Ver Mensaje

El asunto es que sólo el servidor saber que generó, y al recibir el formulario compararía dicho valor contra lo que le provee el usuario.

Obviamente sólo harán "match" si son el mismo, y además es un valor que se regenera con cada petición de modo que cada usuario crearía un valor único y que cambia en la siguiente petición, etc.
Esto es precisamente lo que no comprendo del todo bien, y es a lo q me refiero con un parámetro más (como te comentaba, quiza mi implementación está mal, q es lo mas seguro )

Yo tengo un formulario de login, digamos, en mi index.php, en el cual creo un token, de la siguiente forma:


Archivo index.php

Código HTML:
Ver original
  1. <?php
  2.   $token =  //Creamos el token con algún método para generar un 'código' aleatoirio o encriptado (o ambos)
  3.  $_SESSION['token'] = $token;
  4. ?>
  5. <form action="ingresar.php" action="post">
  6.  <input type="text" name="user">
  7.  <input type="password" name="pass">
  8.  <input type="hidden" name="token" value="<?=$token?>">
  9.  <input type="submit" value="Ingresa">
  10. </form>

Después en mi archivo ingresar.php tengo lo siguiente

Archivo ingresar.php
Código PHP:
Ver original
  1. <?php
  2.    $token_recibido = $_POST['token];
  3.   if($_SESSION['token']==$token_recibido){
  4.    //Comprobamos las demás variables para hacer el login
  5. }
  6.  else{
  7.   //Acciones a seguir en caso de que el token no coincida
  8.  }
  9. ?>

Esa es la forma que yo entiendo de generar el token, pero a final de cuentas , es un valor más que se puede enviar desde una parte externa, y la sesión se crearía tan sólo con visitar mi página...
Sé que se pueden agregar más parámetros, como la caducidad del token o incluso otra session con el tiempo dado al usuario para realizar acciones , pero,
existe alguna otra forma más "segura"? o es q la implementación no es la correcta

Agradezco sus observaciones, saludos!!