Gestión de COOKIES en un servidor Apache 1

Gestión de COOKIES en un servidor Apache

Gestión de COOKIES en un servidor Apache 2

Recomendaciones

Las cookies no son seguras. Basta con ir a la sección de preferencias del navegador para ver su contenido.

Recomendaciones:

  • No guardar información sensible (como nombres de usuario, passwords, etc. ) en las cookies.
  • Usar cookies seguras, que no permiten su acceso mediante javascript.
  • Asignarles una fecha de expiración.
  • Asignarle un dominio y una ruta.

ejemplo de una cookie segura

setcookie(name, value, expire, path, domain, secure, httponly);

$name = “username”;
$value = “rqr”;
$expire = time() + 60*60*24*7;
$path = “/”;
$domain = “www.pablomonteserin.com”; //sólo accesible en este subdominio. No es lo mismo que poner pablomonteserin.com
$secure = isset($_SERVER['HTTPS']);
$httponly = true; //no será posible acceder a la cookie con js

setcookie($name, $value, $expire, $path, $domain, $secure, $httponly);

Encriptado

Usaremos la librería MyCrypt de PHP.

Firmar una cookie

Podemos encriptar el texto de la cookie y añadir dicho código encriptado a la propia cookie, haciendo una comprobación al recuperarla de que el texto y su encriptación coincidan.

function sign_string($string){
 $salt = "Simple salt";
 $checksum = sha1($string.$salt);
 return $string."--".$checksum;
}

function signed_string_is_valid($signed_string){
 $array = explode("--", $signed_string);
 if(count($array) != 2){
  return false;
 }
 $signed_string2 = sign_string($array[0]);
 if($signed_string == $signed_string2){
  return true;
 }else{
  return false;
 }
}

Ver solución