WorkBuddy整理的Z-BlogPHP 目录权限整理(加固版)

结合你这个站已被挂马的情况,权限原则是:核心只读、少数目录可写、上传和缓存禁止执行 PHP。

Linux 环境(推荐:目录 755,文件 644)

路径权限说明
/(根目录 index.php 等)目录 755 / 文件 644只读即可
zb_system/全部755 / 644核心程序,全部只读,不给任何写权限
zb_users/c_option.php600 或 644里面存着数据库密码,最好收紧到 600
zb_users/cache/755(运行用户可写)系统缓存,必须可写
zb_users/data/755(运行用户可写)配置/SQLite 数据,必须可写
zb_users/logs/755(可写)日志
zb_users/upload/755(可写)附件上传目录,可写但必须禁 PHP 执行
zb_users/theme/平时 755/644 只读后台在线装主题时临时给写权限,装完改回
zb_users/plugin/同上插件同理

一键设置(在站点根目录执行,www换成你的 PHP 运行用户):

find ./ -type d -exec chmod 755 {} \;find ./ -type f -exec chmod 644 {} \;chown -R www:www ./zb_users/cache ./zb_users/data ./zb_users/logs ./zb_users/uploadchmod 600 ./zb_users/c_option.php

二、关键一步:禁止 upload/cache 执行 PHP

Nginx(server 段加入):

nginx:

location ~* ^/zb_users/upload/.*\.(php|php5|phtml|php3)$ { deny all; }
location ~* ^/zb_users/cache/.*\.(php|php5|phtml|php3)$ { deny all; }

Apache(.htaccess放在 upload 目录内):

apache:

php_flag engine off
<FilesMatch "\.(php|php5|phtml)$">
Require all denied
</FilesMatch>

你这次中招的木马就是把恶意 PHP 写进caches/tpl/、themes/这类自建目录再 include 的——站点根目录下不该出现的caches/、themes/目录直接删掉,这两个本来就不是 Z-BlogPHP 的标准目录。

三、Windows / IIS 环境

路径IIS_IUSRS 权限
全站读取和执行 / 列目录 / 读取
zb_users/cache、data、logs、upload追加"修改"
zb_system/、根目录文件只保持读取,不给写入
zb_users/upload处理程序映射里对该目录取消 PHP 映射(或建 web.config 拒绝 .php)

宝塔 Windows 面板同理:站点"权限"里只给上述四个子目录写权限,并在"配置→防跨站"开启。

防复发的额外建议

  1. 先杀毒再收权:权限只是防复发,先按之前说的把function_tool后门、btiyu.vip/jquery-cnd注入代码清干净,否则可写目录里的老马照样能跑。

  2. 后台装主题/插件时才临时开写权限,装完立刻收回——很多木马就是通过在线装主题的写权限二次落地的。

  3. zb_users/data/如果用的是 SQLite,确认数据目录不允许 HTTP 直接下载(Nginx 拒绝对data/下.db等的访问)。

  4. 定期比对zb_system/与官方包的文件差异(diff -r),有改动立即告警。

微信号:956602803
加微信好友, 获取更多信息
复制微信号