PHP图片上传.如何防止包含代码的图像?

Sta*_*ann 7 php file-upload

根据我的理解, - 图像(jpeg,gif等)可能包含有效的php/python/perl等代码.所以 - 任何人都可以创建有效的jpeg文件,同时可以由PHP解释器执行.(这里是描述:链接)

所以 - 我想知道 - 有没有办法从图像中删除恶意代码?用GD或imagemagic工作重新编码图像?

谢谢!

小智 4

实际图像不会包含代码。但是没有什么可以阻止有人尝试上传“图像”文件,然后尝试让它执行。

您的解释器(Perl、PHP 等)应设置为仅执行某些文件类型(即 .php 或 .php5)。Perl 或 PHP 没有理由解析图像文件。

只需使用以下常识来保护自己:

1) 验证文档的 MIME 类型
2) 强制执行仅允许上传特定扩展名的文件的策略
3) 不接受表面上的文件名。生成您自己的内部文件名并使用数据库表来保存映射。
4) 如果您真的很偏执,请找到一些代码来检查字节签名对于给定文件类型上传是否有效。