一段检测图片恶意代码的php函数
主要替换一php特征代码和javascript特征代码// 匹配16进制中的
// 匹配16进制中的 ( ) ?>
// 匹配16进制中的
function checkHex() {
$return = true;
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.*?28.*?29.*?253e)|(3c3f.*?28.*?29.*?3f3e)
|(3C534352495054)|(2F5343524950543E)|(3C736372697074)|(2F7363726970743E)/is", $hexCode)){
//有恶意代码
$return = false;
}
}
return $return;
}
将php 或者 html中的特殊代码转换成16进制,把图片内容转换成16进制
然后查找是否有匹配的内容