¿Cómo prevenir las Cookie-Bombs?

1

Egor Homakov hizo una buena reseña ( Cookie Bomb o rompamos la Internet ) sobre cómo bloquear CDN y otros sitios web con cookies.

Aunque este es un DOS del lado del navegador / usuario, me pregunto cómo se podría detener esto en el lado del servidor.

    
pregunta that guy from over there 21.07.2014 - 08:00
fuente

2 respuestas

2

La mayoría de los navegadores tienen un límite en la cantidad de cookies que almacenarán para un solo TLD. Por lo tanto, si el servidor está configurado para permitir una solicitud lo suficientemente grande como para incluir todas estas cookies, las solicitudes ya no serán rechazadas. Apache tiene opciones como LimitRequestFields , LimitRequestFieldSize , etc. Establecer estos valores suficientemente altos debería permitir que la solicitud se procese con todas las cookies agregadas por el atacante, aunque en la memoria y el costo del tiempo de procesamiento.

Por supuesto, si controla todo el dominio, hay otras mitigaciones posibles, Ya que requiere que un atacante pueda crear contenido que establezca cookies en *.targetdomain.com , solo es posible explotar con contenido controlado por el atacante en ese dominio. Entonces, si a los atacantes no se les permite crear scripts del lado del servidor (es decir, cualquier cosa que pueda enviar Set-Cookie) o crear JavaScript (que puede establecer cookies a través de document.cookie), entonces sería vulnerable. Claramente, la mitigación no permite a los usuarios crear contenido en esos dominios.

    
respondido por el David 21.07.2014 - 08:31
fuente
2

Realmente no puedes.

El problema es que las cookies son del lado del cliente y solo hay dos métodos para solucionar el problema: ignorar / aceptar las cookies o eliminarlas.

El primero es probablemente más fácil que el segundo, pero no lo recomendaría. Hay una razón para mantener las galletas pequeñas, no son la comida completa. (¿Por qué demonios querría un servidor aceptar un encabezado de cookie de medio megabyte ...? La mayoría de las páginas web tienen solo 2 MB). Entonces, sí, puede ignorar o aceptar el encabezado de cualquier tamaño que el cliente le envíe, pero eso es malo. práctica.

Puedes eliminar las cookies con tu propio JS, pero eso solo es posible si conoces el nombre, el dominio y la ruta de acceso de la cocinera. Y aunque pueda ser capaz de borrar todas las cookies para su dominio, se encontraría con dos problemas: ( 1 ) elimine todas las demás cookies, a menos que tenga un realmente buen JavaScript y ( 2 ) solo eliminaría las cookies de su dominio, faltando los otros sitios bloqueados.

edit: lea la respuesta de David porque menciona que no permita que los usuarios escriban JS personalizados para su sitio, que omití.

Lecturas correctas: ¿Máximo en los valores del encabezado http? y ¿Cómo puedo eliminar todas las cookies con JavaScript?

    
respondido por el Eric Lagergren 21.07.2014 - 08:37
fuente

Lea otras preguntas en las etiquetas