保护方案页的「保护强度预设」从只有 WordPress 扩到六个场景,排除规则改成去重追加,套完预设界面当场刷新。
这次改了什么
- 框架预设补齐:ThinkPHP 的
runtime/vendor、Laravel 的storage/bootstrap/cache/vendor与 Blade 模板、Discuz 的template/data/config/uc_server全部一键排除。 - 排除规则改成去重追加:客户自己维护的排除清单不会被预设冲掉,同一个预设套两遍也不会越套越长。
- 界面同步:套完预设,「文件排除」页的目录 / 文件 / 正则 / 白名单四个输入框当场刷新,不会再出现「以为没生效又手填一遍」的情况。
- 选中即预览:下拉里选中一条,底部按钮栏先显示这套预设会改什么,点「应用」后显示「已应用:…」。
为什么要排除这些目录
缓存与模板目录加密了反而跑不起来:Blade 的 @if、Discuz 的 {template}都是模板伪指令,PHP 解释器不认;框架的 runtime / storage 是运行时写入的,加密只会让框架自己把自己绊倒。
老规矩:每个预设都跑过真机验收——被排除的文件必须原样复制,其余 PHP 必须真的变了样,过 php -l 且运行结果与原文件一致。