hi,欢迎访问本站!
当前位置: 首页编程开发正文

php检测图片是否含有木马的方法

墨初 编程开发 1137阅读

在网上发现了一个php脚本代码来检测图片中是否含有木马病毒的方法,虽然不能彻底的检测到图片是否有木马,但胜在与无,在安全方面还是有点用处的。

php检测图片是否有木马的方法

php检测图片代码是否有木马,主要是先将图片转为十六进制,然后再用正规匹配一些木马的代码即可。

例:

/**
 * @name 检测图片是否含有木马
 * @param string $image 图片在服务器上的存放路径
 * 
 * @return bool true 图片正常 false 图片异常
 * @host https://www.73so.com
 */
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);
        //备用 "/(3c25.*?28.*?29.*?253e)|(3c3f.*?28.*?29.*?3f3e)|(3C534352495054)|(2F5343524950543E)|(3C736372697074)|(2F7363726970743E)/is"
        // 匹配一些特征被成转十六进制的字符,比如 <? 等
        if (preg_match("/(3c25)|(3c3f.*?706870)|(3C534352495054)|(2F5343524950543E)|(3C736372697074)|(2F7363726970743E)/is", $hexCode)) {
            return 'false';
        }
    }
    return 'true';
}

函数使用方法

echo check_illegal('mochu.jpg') ? '图片正常' : '图片异常';
// 图片正常
声明:无特别说明,转载请标明本文来源!
相关推荐