12. Cookies
Una Cookie, o Cookie permanente, es una variable que se guarda en el navegador con un periodo de vida. Lo sabroso de esta funcionalidad es si el usuario abandona nuestro sitio y vuelve más adelante podremos recuperar la información. A no ser que haya borrado las Cookies de nuestra web.
A pesar de la mala fama que tienen son útiles y seguras para los programadores, otra cosa es que exista empresas sin escrúpulos que quieran aprovecharse de sus virtudes. Poseen muchos usos:
- Guardar tu configuración para mejorar la experiencia (autologin, cambiar idioma que elegiste la primera vez, la última búsqueda que realizaste, evitar mostrar avisos que ya aceptaste...).
- Usos comerciales (sugerencias personalizadas dependiendo de que buscaste en la última ocasión, guardar tu carrito de compra...)
- Crear estadisticas.
Crear
Sintaxis tradicional:
setcookie('nombre', 'valor', 'caducidad');
// Caducará en 60 segundos
$caducidad = time() + 60;
setcookie('idioma', 'es', $caducidad);
Sintaxis moderna (PHP 7.3+):
Desde PHP 7.3 podemos usar un array de opciones para una configuración más clara y segura:
setcookie('idioma', 'es', [
'expires' => time() + 60,
'path' => '/',
'domain' => '',
'secure' => true, // Solo por HTTPS
'httponly' => true, // No accesible desde JavaScript
'samesite' => 'Strict' // Protección contra CSRF
]);
Opciones de seguridad recomendadas:
secure: true: La cookie solo se enviará por conexiones HTTPS. Esencial para producción.httponly: true: Previene que JavaScript acceda a la cookie, protegiendo contra ataques XSS (Cross-Site Scripting).samesite: Protege contra ataques CSRF (Cross-Site Request Forgery):'Strict': La cookie solo se envía en peticiones del mismo sitio (máxima seguridad).'Lax': Permite enviar la cookie en navegación normal desde otros sitios (balance entre seguridad y usabilidad).'None': Permite enviar la cookie en peticiones de terceros (requieresecure: true).
Obtener
echo $_COOKIE['idioma'];
// es
Actualizar
setcookie('idioma', 'fr');
echo $_COOKIE['idioma'];
// fr
Borrar
unset($_COOKIE['idioma']);
Otra forma para borrar una Cookie es caducarla:
setcookie('idioma', 'es', time() - 1).
This work is under a Attribution-NonCommercial-NoDerivatives 4.0 International license.
Desafíos de programación atemporales y multiparadigmáticos
Te encuentras ante un librillo de actividades, divididas en 2 niveles de dificultad. Te enfrentarás a los casos más comunes que te puedes encontrar en pruebas técnicas o aprender conceptos elementales de programación.
Buy the book
Support me on Ko-fi
Comments
There are no comments yet.