Gestión de COOKIES en un servidor Apache

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.

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

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.