为了防御攻击者试图滥用图像文件的远程文件包含,我通常建议不要使用include将图像文件包含到 PHP 代码中。
但有时,可能根本不可能避免 image include(无论出于何种原因,都无所谓)。
在这种情况下,我通常会在上传过程中的某处提取图像并将它们转换为另一种图像格式(有时与有损压缩相结合),以希望破坏原始图像中可能包含的任何恶意代码。
这行得通,但我对它不太满意。主要是因为这种处理会产生额外的服务器负载,并且有时可能会发生可能的图像质量下降。
有什么更聪明的方法或最佳实践吗?
编辑
澄清一下:我说的是攻击者将 PHP 代码注入图像文件以在上传图像后在服务器端执行注入代码的情况。例如,论坛允许用户上传头像(小图像文件)以进行个性化。