Me parece que el httponly lo explicaste al reves, true quiere decir que no lo pueden leer desde javascript. Y false si los deja leer. O al menos eso dice la doc de php.
Debugging
Debugging avanzado en PHP: técnicas y herramientas prácticas
Debugging Avanzado con la Función dd en PHP
Cookies y sesiones
Creación y manejo de cookies en PHP
Gestión Avanzada de Cookies en PHP
Gestión de Sesiones en PHP: Uso de session start()
Trabajando con Sesiones PHP: Login, Logout y Variables de Sesión
Manejo de excepciones
Manejo de Excepciones en PHP con Try-Catch
Estructura Try-Catch en PHP: Manejo de Errores y Excepciones
Métodos útiles en manejo de excepciones con TryCatch en PHP
Creación de Excepciones Personalizadas en PHP
Trabajando con fechas
Manejo de Fechas y Horas en PHP: Funciones y Clases Essenciales
Manejo de Fechas en PHP: Procedural vs Orientado a Objetos
Manipulación de Fechas con PHP: Funciones y Ejemplos Prácticos
Cálculo de Diferencias de Fechas con PHP
Manipulación de Fechas con PHP: Funciones Clave y Ejemplos
Modularización
Modularización de Código en PHP: Funciones Include y Require
Namespaces en PHP: Organizadores de Clases y Espacios de Nombre
Autocarga de Clases en PHP con Composer y PSR-4
Programación de un Front Controller en PHP
Optimización de URLs con .htaccess en Apache
Uso de Traits en PHP: Reutiliza Métodos en Clases
Cierre
Conexión a Bases de Datos en PHP Puro
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Las cookies son una herramienta esencial en el desarrollo web para almacenar pequeños fragmentos de datos que permiten la personalización y la mejora de la experiencia del usuario. Comprender cómo manipularlas y configurar sus parámetros adecuadamente es fundamental para cualquier desarrollador web interesado en crear aplicaciones robustas y seguras.
Para definir una cookie en PHP, utilizamos la función setcookie()
, que permite establecer varios parámetros esenciales. Comencemos con un ejemplo básico para crear una cookie en PHP:
<?php
setcookie(
'example-cookie', // nombre de la cookie
'un michi salvaje', // valor de la cookie
time() + (60 * 60 * 24), // expire en un día
'/', // path
'localhost', // dominio
false, // secure (SSL)
true // HTTP only
);
Nombre y Valor: Son los aspectos más fundamentales. El nombre identifica la cookie y el valor almacena la información que queremos guardar.
Expires: Define el tiempo de expiración de la cookie. Si se establece en cero, la cookie se eliminará cuando se cierre el navegador. Podemos calcular el tiempo de expiración en unidades de segundos usando una marca de tiempo UNIX a través de la función time()
:
time() + 60
time() + (60 * 60)
time() + (60 * 60 * 24)
Path: Especifica la ruta en la que la cookie es disponible. Si configuramos el path como '/', la cookie estará disponible en todo el dominio. Por ejemplo, si definimos '/configuración'
, la cookie solo estará accesible en esa ruta y en las que le siguen jerárquicamente.
Domain: Determina el dominio en el que la cookie es válida. Puede restringirse a subdominios específicos como cookie.platzi.com
.
Secure: Si está configurado en true
, la cookie solo será enviada a través de conexiones HTTPS, garantizando así su seguridad. Debe quedar en false
al trabajar en localhost
ya que usualmente no cuenta con un certificado SSL.
HTTP Only: Determina si la cookie está accesible a través de lenguajes del lado del cliente como JavaScript. Al ponerlo en true
, solo estará disponible del lado del servidor, añadiendo una capa adicional de seguridad.
Un punto crucial al trabajar con cookies es entender cómo las rutas y los dominios afectan su disponibilidad. Si una cookie está definida para un específico path, solo estará accesible en esa ruta y en las subrutas que hereden el prefijo de esa ruta.
Ejemplo:
'/configuración'
:
'/configuración'
y '/configuración/admin'
'/otra-ruta'
Esto nos permite un control granular sobre dónde las cookies pueden ser utilizadas dentro de nuestra aplicación.
secure
y HTTP only
para proteger la información.Convirtiéndote en un experto en el manejo de cookies, puedes mejorar significativamente la seguridad y la operación de tus aplicaciones web. ¡Sigue explorando, y nunca dejes de aprender sobre las fascinantes capacidades del desarrollo web!
Aportes 12
Preguntas 1
Me parece que el httponly lo explicaste al reves, true quiere decir que no lo pueden leer desde javascript. Y false si los deja leer. O al menos eso dice la doc de php.
Parámetros que admite el método setcookie():
Ya que estamos trabajando con las cookies, quiero compartirles unos apuntes (buenas practicas) sobre seguridad (para prevenir los ataques XSS):
.
Es mejor usar sessiones del lado del servidor que cookies del lado del cliente.
.
Otras recomendaciones, para tener en cuenta (de manera informativa, porque no es el scope del curso) pero es la forma profesional de lidiar con las cookies:
.
La parte de httponly está al revés
(Documentación oficial)
httponly
Cuando es true la cookie será accesible sólo a través del protocolo HTTP. Esto significa que la cookie no será accesible por lenguajes de scripting, como JavaScript. Se ha indicado que esta configuración ayuda efectivamente a reducir el robo de identidad a través de ataques XSS (aunque no es soportada por todos los navegadores). pero esa afirmación se disputa a menudo. Agregado en PHP 5.2.0. Puede ser true o false
Lástima que no revisen el contenido antes de subirlo
soy tu fan :3
Los parámetros que se están usando en la función setcookie()
son los siguientes:
name
: El nombre de la cookie, en este caso “example”.value
: El valor de la cookie, en este caso “Michi_salvaje”.expires_or_options
: La fecha de expiración de la cookie expresada en formato Unix timestamp. En este caso se ha establecido en 0, lo que significa que la cookie expirará al finalizar la sesión.path
: La ruta dentro del servidor a la que la cookie está disponible. En este caso se ha establecido en “/” lo que significa que la cookie está disponible en todo el sitio.domain
: El dominio para el que la cookie está disponible. En este caso se ha establecido en “localhost”.secure
: Un valor booleano que indica si la cookie sólo está disponible en conexiones seguras (https). En este caso se ha establecido en false.httponly
: Un valor booleano que indica si la cookie puede ser accedida por el frontend con jsRetaxMaster se ha equivocado al explicar httponly, según La documentación de setcookie si es true
“será accesible por lenguajes de scripting, como JavaScript”
Para los que se encuentran en un futuro, el httponly se ha explicado incorrectamente. Es exactamente lo que el dijo pero al revés.
super interesante…
<?php
setcookie(
name: "example_cookie",
value: "Michi salvaje",
expires_or_options: time() + 60 *60 * 24, // 0 La cookie estara viva mientas la sesion, time() en tiempo inmediato
path : "/configuracion", // url en la que estara disponible la cookie, si se deja solo / la cookie estara disponible ew
domain: "localhost", // dominio en el que estará disponible
secure: false, //la cookie podra definirse solo si el dominio tiene ssl
httponly: true // puede ser accedida desde Front, en flase estara disponible solo en server side
);
?>
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?