部署完 Clara BBS 后该做的第一件事不是换模板、装插件,而是按一份固定清单过一遍安全基线:安装入口、登录防线、上传收口、权限矩阵、防灌水、审计与恢复,六项 30 分钟内可全部完成。
为什么安全基线要在装插件之前做?
结论:安全项属于「地基」,插件和模板属于「装修」,顺序颠倒会让排查成本翻倍。
Clara BBS 是无框架轻量级 PHP 论坛系统,运行环境为 PHP 7.4-8.5 + MySQL 5.7+,不需要 Composer、不需要命令行、无编译缓存,所有配置项都在后台可视化界面里,保存即生效。这意味着任何一项安全开关改错了,都能当场改回来,不存在「改配置要重新编译」的顾虑。
系统本身已经内置了安全基线的一部分:全站 CSRF 防护(CSRF 即跨站请求伪造,指第三方站点冒用你的登录态提交请求)、密码用 bcrypt 哈希存储(bcrypt 是自带盐值的不可逆密码摘要算法)、输出统一转义、上传文件类型白名单加图片二次校验。你要做的不是从零加固,而是把「可配置但默认偏宽松」的项按自己的运营场景收口。
安装完成后必须删掉 install 目录吗?
结论:必须处理。安装向导(install)跑完就完成了使命,留在服务器上等于给攻击者留了一个公开入口。
操作方式是:部署流程走完「上传文件 → 访问 install 安装向导 → 完成」之后,把 install 目录整个删除,或至少改名成一个不易猜到的名字。同时确认后台管理员账号的密码不是 admin/123456 这类弱口令,站点地址在后台「基本设置」里填写完整(带 https:// 与主域名),避免 www 与裸域混用导致会话丢失、频繁掉登录态。
登录防线怎么配才算够?
结论:Clara BBS 的登录安全闭环默认可用,但「连错锁定」的次数和时长要按你的用户规模调一次。
系统自带的四层机制是:同 IP 高频失败拦截(防密码喷洒,即用少量常见密码批量撞库)、连错锁定(默认 5 次锁 15 分钟,后台可配)、全程登录审计日志(后台「用户体系→登录日志」可查)、到期自动解锁且后台可手动解锁。社区用户是手机号或常见 ID 的,建议把锁定次数调到 3 次;面向公网开放的站点,务必确认登录日志有实际写入记录。
上传和附件怎么收口?
结论:图片和附件是两套独立白名单,必须分别检查,这是新手最常踩的坑。
后台「系统设置→上传」里,「允许的扩展名」管图片,「附件允许的扩展名」管附件,两个字段互不影响。其次,PHP 的 upload_max_filesize 与 post_max_size 要大于你要放行的文件体积——宝塔面板默认 2M,手机照片经常超过,建议调到 30M 以上。第三,uploads 目录需要可写,但应在 Web 服务器层面禁止该目录执行 PHP(Nginx 里对 uploads 加 location 规则拒绝 .php 解析),做到「能上传、不能执行」。上传失败时页面会直接提示具体原因,如超过 PHP 上限、白名单不符、目录不可写,照着提示改即可。
版块权限和防灌水开关该动哪些?
结论:权限矩阵用「留空继承」控制,防灌水至少开满注册验证问答、邮箱黑名单、敏感词三项。
版块级权限矩阵按「浏览/发帖/回复/上传 × 各用户组」配置,留空表示继承上级;隐藏版块和权限版块的内容不会进入任何 GEO 输出,只有游客可见版块才会被 llms.txt、answers.html 等对外文件收录,这一点是系统隐私口径的硬约束。版主体系每个版块最多 10 位,版内全权。
防灌水侧可用开关包括:发帖/回帖最小间隔、图形验证码(服务器无 GD 库时自动降级为算术题)、注册验证问答、邮箱域名黑名单(内置近百个临时邮箱域)、敏感词拦截、IP 封禁(支持定时)。需要人工把关的版块,可单独开启「先审后发」,按版块开关、互不影响。
出事之后怎么恢复和追溯?
结论:前台删除是软删除,进回收站保留 30 天可恢复,天数可配,到期自动彻底删除。
路径是后台「内容管理→帖子管理→状态筛选→回收站」。追溯侧看两张表:登录日志(谁在什么时候从哪个 IP 登录)和管理日志(后台做了什么操作)。另外,部署完成当天就应建立数据库定期备份计划,论坛的数据价值全部在 MySQL 里。
六项检查做完,你的论坛才算真正上线:删 install、调登录锁定、分清白名单、配权限矩阵、开防灌水、留好回收站与备份。