是否有必要使用PHP扫描用户通过html表单上传的图像?
以下安全措施是否足够:
是否有必要使用防病毒软件扫描用户的文件?我怎么能用PHP做到这一点?
我使用的是Ubuntu 14.04 LTS
答案 0 :(得分:1)
为什么使用防病毒软件非常有用:
从技术上讲,图像可以利用系统中的漏洞,而不仅仅是元数据,而是以不同的方式,具体取决于打开图像的软件。
例如,第一个PSP漏洞之一是由于图像查看器解析TIFF图像(http://www.makeuseof.com/tag/how-to-downgrade-your-psp-and-upgrade-to-a-custom-firmware-part-one/#2.00)的方式。
虽然可能不太可能,但是库中可能存在调整图像大小的错误/漏洞/后门,因此如果您想要采用非常谨慎的路线,则顺序为:
您可以使用提供PHP的库 - 防病毒集成,例如:http://sourceforge.net/projects/php-clamav/(但请记住,如果请求在将文件传输到AV时长时间排队,也可能发生DoS;安全性经常涉及权衡!)。
注意:让您的图书馆软件包保持最新状态比AV更长,因为在修改原始图像后,任何漏洞利用都可能会被破坏/丢失。
答案 1 :(得分:0)
无需防病毒扫描图像。虽然技术上可以将病毒放入图像数据中,但它不会像任何地方一样被执行。您可以做的是剥离元数据,以确保它不用于利用图像查看器中存在的任何错误。
根据您用于处理图片的程序,可能会有选项删除转化中的元标记。
我个人使用pngcrush或pngquant(用于视网膜图像)我放在网上的图像。如果您使用imagemagick,则可以使用“-strip”选项。