Ver Mensaje Individual
  #10 (permalink)  
Antiguo 29/06/2009, 16:31
waty90
 
Fecha de Ingreso: diciembre-2006
Mensajes: 153
Antigüedad: 17 años, 4 meses
Puntos: 1
Pregunta Respuesta: bloquear formularios externos con php.

joer, no consigo que me funcione.

podrias ponerme un ejemplo por favor?¿

yo he echo esto:

tengo 2 archivos login-form.php , login-action.php.

en los 2 eh puesto la funcion que me has dao..


Código PHP:
function generateFormToken($formName)
{
  
$token md5(uniqid(microtime(), true));
  
$_SESSION[$formName.'_token'] = $token;
  return 
$token;
}

function 
verifyFormToken($formName)
{
  
$index $formName.'_token';
  
// There must be a token in the session
  
if (!isset($_SESSION[$index])) return false;
  
// There must be a token in the form
  
if (!isset($_POST['token'])) return false;
  
// The token must be identical
  
if ($_SESSION[$index] !== $_POST['token']) return false;
  return 
true;

en login-form.php eh puesto esto:

Código PHP:
$newToken generateFormToken('loginForm');

####mi formulario####


echo "<input type='hidden' name='token' value='$newToken'>"
y en login-action.php esto:

Código PHP:
if (!verifyFormToken('loginForm')) {
  die(
'CSRF Attack detected OR External form processing detected');

y no funciona por que siempre aparece :CSRF Attack detected OR External form processing detected

gracias por su ayuda..
saludos