https://developer.mozilla.org/en-US/docs/Web/API/File/lastModified描述了JavaScript.lastModified中对象的属性File(通常在用户通过 HTML<input type="file">元素选择文件时创建;在浏览器中提供 JavaScript从网页当然不能无限访问用户的文件系统!)
文档包含以下神秘的安全备注:
为了防止定时攻击和指纹识别,
someFile.lastModified可能会根据浏览器设置四舍五入的精度。在 Firefox 中,privacy.reduceTimerPrecision默认启用首选项,在 Firefox 59 中默认为 20us;在 60 中它将是 2ms。
在一个真正的延伸中,我可以看到假设文件修改日期如何用于指纹识别:如果您可以让用户<input type="file">在多个站点的对话框中选择相同的文件,并且您存储精确到微秒的文件修改日期,然后您可以交叉引用它们并注意到,瞧,它是同一个用户(尽管这似乎是一个非常牵强的场景!)。但是我完全无法想象这种四舍五入可以防止什么“定时攻击”。
此功能实际上应该防止哪些攻击?