2009-09-04 22 views
5

Tengo una aplicación web php que utiliza grandes cookies para almacenar una gran cantidad de datos de los usuarios. Si configuro mod_gzip en el servidor apache, ¿comprimirá solo el contenido de la página o comprimirá también las cookies?Mod_gzip comprime las cookies

Respuesta

12

No, comprime solo el contenido. Las cookies se envían en los encabezados, que nunca se comprimen.

6

La compresión no se aplicará a las cookies con mod_gzip, pero siempre puede comprimir los datos de la cookie usted mismo si sabe que va a ser grande. Comprima los datos cuando crea la cookie y descomprímalos cuando lea la cookie. Asegúrese de verificar una firma en los datos antes de descomprimir para ayudar a evitar ataques DoS contra su código.

+1

Además de eso, nunca es completamente seguro almacenar información confidencial en las cookies. – Havenard

+0

PHP ya tiene funciones de compresión como 'gzencode' (formato de archivo' desinflar' de HTTP), 'gzcompress' (formato de archivo' gzip' de HTTP) y 'gzdeflate' (formato de datos * DEFLATE *). Así que dudo que necesites una firma para protegerte contra los ataques de denegación de servicio. – Gumbo

+2

Comprimir una cookie probablemente no salvará ningún byte en el cable, e incluso podría generar más tráfico. Recuerde que las cookies están codificadas con URL, por lo que cada carácter que no sea alfanumérico tendrá 3 veces más espacio y anulará cualquier ahorro realizado con la compresión. Por ejemplo, 'urlencode (gzcompress (" this is a text ", 9))' devolverá una cadena de 54 caracteres, 3.5 veces el tamaño original "descomprimido". –

4

Creo que se está enfocando en el problema equivocado aquí.

En ese momento en que siente que comprimir las cookies puede ser una buena idea, claramente está haciendo un uso indebido del sistema de cookies.

Almacenar datos mínimos en las cookies, como un ID único para un contexto de inicio de sesión o lo que sea, no almacene toda la información de usuario en las cookies.

Básicamente lo que quiero decir es que nunca deberías sentir la necesidad de tener las cookies comprimidas. Si lo haces, estás haciendo algo mal.

Y no, para responder a su pregunta, no comprimirá las cookies. Se envían por separado del contenido.

+0

Muy buen punto. La cookie debe ser la clave/identificador de los datos de usuario guardados en su servidor. – bucabay

+0

Buen consejo, pero no siempre es el caso. Creo que esto es un poco generalizado. Nuestro sistema actual usa cookies para varias cosas y se acercan al límite de 4k (en total). La cookie FedAuth utilizada por WIF para autenticarse es bastante grande. ¿WIF está equivocando el sistema de cookies? sin falta de respeto previsto :) – kurasa