HTTP/Estado y Seguridad/Enviando cookies

Existen tres áreas de información en la cookie, cada delimitada por el punto y coma (;). El primero es donde se habla de que, hay uno o más pares de nombre y valor. Estos nombre-valor pares están delimitadas por un signo de dólar ($), y se ven muy similar a cómo los parámetros de consulta. Un sitio web puede poner cualquier información que le gusta en una cookie, aunque hay un límite de tamaño de 4 KB. Un servidor nunca puede confiar en cualquier cosa almacenada en el cliente, a menos que esté asegurada criptográficamente. Es posible almacenar los datos cifrados en una cookie, pero por lo general es más fácil de almacenar un ID. Cuando llega el ID, el software de servidor puede buscar rápidamente los datos de usuario asociados a partir de una estructura de datos en memoria, base de datos o caché distribuida. Puede configurar la mayoría de los entornos de aplicaciones Web para manipular las cookies y automáticamente buscar el estado de sesión.

  • Ejemplo Set Cookie

Cuando un sitio web quiere dar a un usuario una cookie, utiliza una cabecera Set-Cookie en respuesta. Así:

HTTP/1.1 200 OK
Content-Type: text/html; 
charset=utf-8
Set-Cookie: fname=Scott$lname=Allen;
domain=.mywebsite.com; path=/
  • Ejemplo ASP.NET

ASP.NET usa 120 bits de aleatoriedad. Una identificador de sesiones de ASP se ve como el siguiente ejemplo, el cual vuelve más difícil la posibilidad de adivinar como luce la sesión ID de alguien más.

Set-Cookie: ASP.NET_SessionId=en5yl2yopwkdamv2ur5c3z45;
path=/; HttpOnly

•       Para poder leer todas las cookies de un lugar se usa:
allCookies= document.cookie;

•       Para escribir una nueva cookie se usa:
document.cookie = newCookie;

En el código de arriba, un (newCookie;) es un string de la forma (key = value), tenga en cuenta que sólo se puede establecer / actualizar una sola galleta a la vez usando este método. Considera también que también que cualquiera de los siguientes valores de los atributos de la cookie puede seguir opcionalmente el par key-value, especificando la cookie para establecer y/o actualizar, y precedido por un signo separador:

path=path (e.g., '/', '/mydir')

Si no se especifica, entonces por defecto se le asignara a la ruta la ubicación del documento actual.

  • Ejemplos:
    • Uso simple:

2. document.cookie = "name=oeschger";

3. document.cookie = "favorite_food=tripe";

4. function alertCookie() {

5. alert(document.cookie);

6. }

7. <button onclick="alertCookie()">Show cookies</button>

Obtener una muestra de cookie llamada test2

9. document.cookie = "test1=Hello";

10. document.cookie = "test2=World";

11.

12. var cookieValue = document.cookie.replace(/(?:(?:^|.*;\s*)test2\s*\=\s*([^;]*).*$)|^.*$/, "$1");

13.

14. function alertCookieValue() {

15. alert(cookieValue);

16. }

17. <button onclick="alertCookieValue()">Show cookie value</button>