enlace describe la propiedad .lastModified
de un objeto File
en JavaScript (generalmente creado cuando un usuario selecciona un archivo a través de un elemento HTML <input type="file">
; ¡el JavaScript en el navegador servido desde una página web, por supuesto, no tiene acceso ilimitado al sistema de archivos del usuario!)
Los documentos contienen el siguiente comentario de seguridad críptico:
Para ofrecer protección contra ataques de tiempo y huellas digitales, la precisión de
someFile.lastModified
podría redondearse según la configuración del navegador. En Firefox, la preferenciaprivacy.reduceTimerPrecision
está habilitada de forma predeterminada y por defecto es 20us en Firefox 59; en 60 será 2ms.
En un tramo real puedo ver cómo, hipotéticamente, se podrían usar las fechas de modificación de archivos para huellas digitales : si puede hacer que un usuario seleccione el mismo archivo en un cuadro de diálogo <input type="file">
en varios sitios, y almacena la fecha de modificación del archivo de precisión para el microsegundo, luego puede hacer una referencia cruzada entre ellos y darse cuenta de que, voila, es el mismo usuario (aunque esto parece ser un escenario muy inverosímil). Pero estoy totalmente perdido para imaginar contra qué "ataques de temporización" podría proteger este redondeo.
¿Cuáles son los ataques que esta característica realmente debe evitar?