Ver Mensaje Individual
  #7 (permalink)  
Antiguo 10/09/2014, 02:58
Avatar de iEnrique
iEnrique
 
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Respuesta: No dejar enviar datos a los archivos de mi web desde páginas externas

Siento el doble post pero vengo a proponer algo y es el siguiente código que me he inventado:

Código PHP:
Ver original
  1. <?php
  2. if(isset($_SESSION["csrf"]) && isset($_COOKIE["csrf"])){
  3.      if(md5($_SESSION["csrf"]) == $_COOKIE["csrf"]){
  4.           unset($_SESSION["csrf"]);
  5.           setcookie("csrf", "", time() - 1);
  6.           $_SESSION["csrf"] = "xxxxx"; //Cada uno de los "x" será un rand(1, 9)
  7.           setcookie ("csrf", md5("xxxxx"), time() + 86400); //Cada uno de los "x" será un rand(1, 9)
  8.           //Pongo que la cookie dure un día, no creo que alguien esté 24h sin hacer ningún cambio y si lo está, le enviará a la página de error.
  9.      }else{
  10.           unset($_SESSION["csrf"]);
  11.           setcookie("csrf", "", time() - 1);
  12.           $_SESSION["csrf"] = "xxxxx";
  13.           setcookie("csrf", md5("xxxxx"), time() + 86400);
  14.           header("Location: error.php");
  15.      }
  16. }else{
  17.      unset($_SESSION["csrf"]);
  18.      setcookie("csrf", "", time() - 1);
  19.      $_SESSION["csrf"] = "xxxxx";
  20.      setcookie("csrf", md5("xxxxx"), time() + 86400);
  21.      header("Location: error.php");
  22. }

¿Este serviría y sería totalmente seguro?

Muchas gracias