{include file="app/manage/view/index/emlog_nav"}

文件校对

通过对核心文件(app / ZhiCms / public / plugins 下的 php/html/js/css)计算 MD5 并与基线比对,发现被篡改、新增或缺失的文件;首次使用请先「建立基线」(建议在全新安装或官方升级后立即建立)。核心/框架文件(ZhiCms、vendor/TP6、app/base、app/api、app/common、public)为受保护文件,不允许在后台修改或篡改,检测到变化必须从「代码仓」拉取恢复。
代码仓设置
恢复时按 gitee → 本地托底目录 → 官方压缩包 顺序自动回退。官方压缩包 https://www.zhi.red/d/zhicms.zip 会自动下载缓存于 data/repo_ref/zhicms.zip(24 小时内维持最新)。 {if $hasLocal}✓ 已检测到本地托底目录,可作为离线兜底。{else}⚠ 尚未配置/检测到本地托底目录,将依赖官方压缩包兜底。{/if}
检测代码仓/更新包是否有更新

点击下方按钮,系统会连接官方更新包(data/repo_ref/zhicms.zip,自动下载/维持最新)与代码仓接口,检测是否发布了新版本新文件(如你上传到代码仓的文件)。检测到后可一键在线升级补回。

一键恢复整站(急救)

当网站被改乱、白屏、功能异常时,点击下面按钮:从官方代码仓/压缩包拉取最新代码,覆盖除数据库配置外的全部程序文件,并清理所有缓存,将网站快速还原为官方最新版(保留你的数据库与站点配置,不会丢数据)。

会覆盖 app / ZhiCms / public / plugins / vendor 下全部文件;保留 data/config/db.php、站点配置、upload 上传目录与 data/repo_ref 托底目录。
一键清马(高危操作 · 务必先建立基线)

⚠ 警告:此功能会扫描文件校验基线中「新增的文件」,并自动删除落在 upload/runtime/data/高危目录内的可执行脚本(.php/.php5/.phtml/.pht/.phps/.cgi/.pl/.py/.sh/.bat/.exe/.phar 等)。

仅删除高危目录内的可执行新增文件;图片/文本等不会被删,合法插件不会被误删。
{if $hasBaseline} {else} {/if}
{if $hasBaseline}
基线建立于 {date('Y-m-d H:i:s', (int)$baselineTime)},共 {$baselineCount} 个文件
{/if}
在线升级文件系统(远程下载恢复)

当核心/程序文件被改动、缺失或被篡改时,可直接从官方代码仓(gitee)远程下载最新官方版本覆盖本地受保护核心文件,相当于“文件级在线升级”,与“在线升级系统”(升级程序大版本)互补。

恢复顺序:gitee 官方代码仓 → 本地托底目录 → 官方压缩包(data/repo_ref/zhicms.zip)。点击下方按钮会对所有“被改动或缺失”的受保护核心文件(ZhiCms/vendor/app/base/app/api/app/common/public 等)执行远程下载覆盖;普通可修改文件(如自定义模板/视图)不会被强制覆盖,以保留你的正常修改。

{if isset($result) && $result} {if $result['clean']}
检测完成:未发现文件被篡改,系统文件完整。
{else}
检测完成:发现异常! {count($result['changed'])} 个文件被修改, {count($result['missing'])} 个文件缺失, {count($result['added'])} 个新增文件。
{if !empty($result['changed'])}
已被修改的文件({count($result['changed'])})
{foreach $result['changed'] as $it} {/foreach}
文件状态操作
{htmlspecialchars($it.file, ENT_QUOTES, 'UTF-8')} {if $it.protected}受保护·不可改{elseif $it.editable}可修改{else}不可写{/if} {if $it.protected} {if $it.restorable} {else} 未配置代码仓 {/if} {else} {/if}
{/if} {if !empty($result['missing'])}
缺失的文件({count($result['missing'])})
{foreach $result['missing'] as $it} {/foreach}
文件状态操作
{htmlspecialchars($it.file, ENT_QUOTES, 'UTF-8')} {if $it.protected}受保护·不可改{else}普通{/if} {if $it.protected} {if $it.restorable} {else} 未配置代码仓 {/if} {else} {/if}
{/if} {if !empty($result['added'])}
新增的文件({count($result['added'])},可能正常如新增插件/模板)
{/if} {/if} {elseif $hasBaseline}
点击「重新检测」开始比对。
{else}
尚未建立基线

建立基线后会记录当前所有核心文件的 MD5,之后即可检测是否被篡改。

{/if} {include file="app/manage/view/index/emlog_footer"}