thinkphp 检测上传的图片中是否含有木马脚本

该博客介绍了如何检测ThinkPHP上传的图片中是否含有木马脚本。通过分析图片十六进制代码,查找特定脚本标记来检测。文中详细阐述了制作含有木马的图片过程,并提供了一个自定义的Upload类,以实现上传时的木马检测功能。同时,作者鼓励读者亲自尝试并验证方法的有效性。
摘要由CSDN通过智能技术生成
1.检测原理

   要想检测图片中是否含有木马脚本,首先从制作原理来分析这种木马程序。这种木马程序是十六进制编码写的,图片的十六进制代码中主要包含<% ( ) %>、<? ( ) ?> 、<script | /script>, 所以我们可以通过检测十六进制代码来检测木马脚本。

 

2.解决方案

  2.1编写Upload类

   要想上传图片文件,我们要自己先定义一个上传文件的方法,然后方法中调用thinkphp中框架写好的Upload类,但是tp框架中的upload类没有检测木马图片的功能,所以我们可以自己写一个含有检测功能的upload类。

<?php
/**
  +------------------------------------------------------------------------------
* Upload 文件上传类
  +------------------------------------------------------------------------------
* @package   Upload
  +------------------------------------------------------------------------------
*/
class Upload {
      private static $image = null;
      private static $status = 0;
      private static $suffix = null;
      private static $imageType = array('.jpg', '.bmp','.gif','.png');  //允许的图片类型
      private static $message = array(  //文件上传错误信息
            '0' => '没有错误发生,文件上传成功。',
            '1' => '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。',
            '2' => '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。',
            '3' => '文件只有部分被上传。',
            '4' => '没有文件上传。',
            '5' => '未能通过安全检查的文件。'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值