【问题标题】:Are images generated by filereader cached in browser?文件阅读器生成的图像是否缓存在浏览器中?
【发布时间】:2017-09-30 04:11:11
【问题描述】:

由于可以使用 filereader 读取本地文件,因此可以将其显示在网络浏览器中,例如如果是图片。

我的想法是使用 AES 文件加密对加密图像进行解密,并简单地在浏览器中显示结果,而不是生成和下载解密文件,该文件使用 AES file encryption 在我自己的服务器上启动并运行

我在第 3 步中对代码进行了细微更改,而不是转到第 4 步(下载文件),我只是使用 $('body').prepend($('<img />').attr('id','secretimage').attr('src', decrypted)); 生成图像,这将使用 base64 字符串等效项将图像添加为新的 DOM 对象文件。

如果处理加密,您会猜到这完全与安全问题有关。此图片可能/应该/将包含机密信息,可以是合同、银行账户详细信息或任何其他机密或秘密内容。

这是问题本身:使用 jquerys .remove() 函数从 DOM 中删除此图像是否足够安全,或者是否可以在浏览器缓存中的任何位置找到?还是有其他方法来保护和以编程方式删除图像?

感谢您的意见。

【问题讨论】:

  • 我不确定我是否需要坦克 :P 说真的:什么是足够安全?毫无疑问,它至少可以留在 RAM 中。如果内存中的对象没有写保护,当然建议覆盖内存,但即便如此,它也可能已被内存管理复制或保存在 GPU 内存中等。更大的问题可能是获取 AES将自己键入浏览器;一般来说,你应该只使用 TLS。

标签: javascript jquery encryption cryptography


【解决方案1】:

如果图片是 Base64 格式,浏览器不应缓存您的图片。

您无法让您的 Web 应用程序 100% 安全,因为您无法控制用户使用的浏览器的垃圾收集和内存管理。 因此,您只能尝试确保只有经过身份验证的用户才能访问资源,并且用户必须再次进行身份验证。

当然,使用 TLS 来确保数据在传递给用户的过程中不会受到损害。

【讨论】:

  • 谢谢。你的意思是base64格式的图片不应该被缓存?但是 src 属性不是像其他所有 src="http://path/to/image" 一样充当资源标识符吗?
  • 据我所知只有缓存了包含base64字符串的js/html/css文件才会被缓存。
猜你喜欢
  • 2023-04-05
  • 2012-08-23
  • 1970-01-01
  • 2011-01-07
  • 1970-01-01
  • 2015-12-07
  • 2014-01-25
  • 2011-01-27
  • 1970-01-01
相关资源
最近更新 更多