php的数据提交中,需要对数据进行安全的过滤,尤其是一些用户上传的图片,下面简单的说一下如果判断用户上传的图片是否为图片木马。

php 判断图片是否含有木马的方法

自定义php图片木马检测函数

/**
 * # 检测图片是否含有木马
 * # feiniaomy.com
 * @param string $image 图片地址
 * @return bool 
 */
function check_illegal($image)
{
    if (file_exists($image)) {
        $resource = fopen($image, 'rb');
        $fileSize = filesize($image);
        fseek($resource, 0);
        if ($fileSize > 512) { // 取头和尾
            $hexCode = bin2hex(fread($resource, 512));
            fseek($resource, $fileSize - 512);
            $hexCode .= bin2hex(fread($resource, 512));
        } else { // 取全部
            $hexCode = bin2hex(fread($resource, $fileSize));
        }
        fclose($resource);
        if (preg_match("/(3c25)|(3c3f.*?706870)|(3C534352495054)|(2F5343524950543E)|(3C736372697074)|(2F7363726970743E)/is", $hexCode)) {
            return 'false';
        }
    }
    return 'true';
}

函数调用:

$image = check_illegal('mochu.jpg');
if(!$image){
    echo '图片正常';
}else{
    echo '图片不安全';
}