【问题标题】:html5 direct file uploads security risk?html5直接文件上传安全隐患?
【发布时间】:2012-10-22 09:58:30
【问题描述】:

我正在使用带有 base64 编码(默认)的基于 html5 画布的图像上传。服务器端:当发布请求时,base64 标头被删除,base64_decode 函数(根本不使用 eval php 函数)被应用并以 jpg 格式直接保存到文件系统中。

因为我将上传的文件保存为上传内容的精确副本。如果用户上传伪装成 jpg 的恶意 php/js 文件,并且访问者查看该错误 jpg 是否存在安全风险?如果是,我将使用 gd 处理上传的文件。经过 gd 处理后,我认为这些都会消失。

【问题讨论】:

  • 对我或用户来说,但这不会改变结果,因为解决方案是使用 gd 处理所有上传。

标签: html security file-upload


【解决方案1】:

因为我将上传的文件保存为上传内容的精确副本。

那么您在处理任何类型的文件上传时都会遇到所有问题。这里没有特定于 HTML 5 的内容。

如果用户上传伪装成 jpg 的恶意 php/js 文件,并且访问者查看了该错误 jpg,这是否存在安全风险?

假设您使用 image/jpeg 内容类型通过 HTTP 传递它 - 否。

但是,过去图像库中存在基于缓冲区溢出漏洞的问题,因此在理论上(尽管不太可能)特制 JPEG 可以利用最终查看者系统中的安全漏洞。

【讨论】:

  • “假设您通过 HTTP 以图像/jpeg 内容类型交付它 - 否。”我不认为答案是直接不,这就是为什么要问。
  • @opteronn — 鉴于这种情况和假设,答案直接“否”。
  • “那么你在处理任何类型的文件上传时都会遇到所有问题。这里没有任何特定于 HTML 5 的内容。” html5,因为在 toDataURL() 方法中默认使用 base64 编码。
  • @opteronn — 您必须将数据从 base64 解码回二进制文件。然后你有一个文件,一切都和任何其他文件上传一样。
  • 一种情况可能是将特制的 gif 文件作为有效的 jpg 文件。
猜你喜欢
  • 2021-05-21
  • 2012-07-13
  • 1970-01-01
  • 2020-01-27
  • 1970-01-01
  • 2023-03-05
  • 2010-09-07
  • 1970-01-01
  • 2015-08-29
相关资源
最近更新 更多