PHP上传图片如何防止图片木马?
segmentfault回答:
http://segmentfault.com/q/1010000000507750
一、
其实识别图片木马是很困难的,可以在一张正常的图片里加入一句话木马。
但是只要做到图片不会被执行,你的web服务器没有古老的解析漏洞,你的web程序不存在简单的包含漏洞,那么图片木马是基本可以防止的。
二、
题主可以参考这个问题:
单纯通过后缀名判断上传文件的类型肯定是不安全的,可以采取 mime
类型判断或者读取文件头字节来判断是否为图片。更甚者,题主可以用 GD
库来处理上传的图片。
我们现在系统的操作方法是先通过 mime
判断上传文件类型,如果为图片则通过 GD
函数处理生成 thumbnail
,同时保存 origin
图片文件。
三、
可以用linux服务器上的木马扫描软件,比如 Clamav 支持命令行执行的,上传之后就扫一下,最可靠,
$last_line = system('php /var/bin/clamdscan upload.jpg');
根据扫描结果就可以判断了