是否需要对PHP图像上传进行防病毒检查



是否有必要使用 PHP 扫描用户通过 html 表单上传的图像?

以下安全措施是否足够:

  • 检查文件是否为 MIME/getimagesize((
  • 不使用原始文件名
  • 调整图像大小 - 不存储原始图像
  • htaccess 禁止执行任何非 JPEG/PNG 的内容

是否有必要使用防病毒软件扫描用户的文件?我怎样才能用 PHP 做到这一点?

我正在使用 Ubuntu 14.04 LTS

为什么使用防病毒软件可能有用:

从技术上讲,映像可以利用系统中的漏洞,不仅作为元数据,而且以不同的方式利用,具体取决于打开映像的软件。

例如,第一个PSP漏洞是由于图像查看器解析TIFF图像的方式(http://www.makeuseof.com/tag/how-to-downgrade-your-psp-and-upgrade-to-a-custom-firmware-part-one/#2.00(。

虽然可能不太可能,但库中可能存在调整图像大小的错误/漏洞/后门,因此如果您想走极其谨慎的路线,顺序将是:

  1. 将映像交给防病毒软件
  2. 以任何方式处理/存储图像。

您可以使用提供 PHP - 防病毒集成的库,例如:http://sourceforge.net/projects/php-clamav/(但请记住,在将文件交给 AV 时,如果请求排队很长时间,也可能发生 DoS;安全性通常涉及权衡!

注意:让您的库包保持最新比 AV 更长,因为在修改原始映像后,任何漏洞利用都可能被破坏/丢失。

无需防病毒扫描图像。虽然从技术上讲,您可以将病毒放入图像数据中,但它不会在任何地方作为代码执行。您可以做的是剥离元数据,以确保它不用于利用图像查看器中存在的任何错误。

根据您用于处理图片的程序,可能会有删除转化中的元标记的选项。

个人使用pngcrush或pngquant(用于视网膜图像(来制作我放在网络上的图像。如果您使用imagemagick,则可以使用"-strip"选项。

最新更新