Lume 安全审查与加固说明

Lume 1.0 安全审查与加固说明

本次重点检查范围:
1. 表单提交与后台操作
2. 登录会话
3. 文件上传与附件下载
4. 常见浏览器安全头
5. 上传目录执行风险
6. 管理员和版主敏感操作

已完成的程序内加固:

1. 增加全站 CSRF 防护
- 所有 POST 表单自动注入 csrf_token
- 所有 POST 请求自动校验 csrf_token
- 图片/附件即时上传也附带 csrf_token
- 可防止外部网站诱导已登录用户执行发帖、回帖、后台设置、禁封、任命版主等操作

2. 增加后台 GET 敏感操作签名
- 置顶、取消置顶、加精、删帖、删回复、解除 IP 禁封、版主删除等操作链接增加 token
- 后台操作脚本会校验 token
- 可减少管理员点击外部恶意链接导致误操作的风险

3. 加固登录会话
- Session Cookie 增加 HttpOnly
- Session Cookie 增加 SameSite=Lax
- HTTPS 环境下自动启用 Secure Cookie
- 登录成功、注册成功、退出登录时重新生成 Session ID
- 降低会话固定攻击和 Cookie 被脚本读取的风险

4. 增加浏览器安全响应头
- X-Frame-Options: SAMEORIGIN
- X-Content-Type-Options: nosniff
- Referrer-Policy: strict-origin-when-cross-origin
- 降低点击劫持、类型嗅探和来源泄露风险

5. 加固上传目录
- 自动为 uploads 目录写入 .htaccess
- 禁止目录列表
- 禁止 PHP、phtml、phar 等脚本文件在上传目录执行
- 自动补 index.html,避免目录暴露

6. 加强上传文件校验
- 图片上传除校验扩展名外,再用 getimagesize 检查真实图片内容
- 普通附件上传目录也会自动写入防执行规则
- 保留原有 jpg、jpeg、png、gif、webp、zip、rar 等功能

7. 加强附件下载路径校验
- 本地附件下载时使用 realpath 校验文件必须位于 uploads 目录内
- 防止路径穿越读取站点其他文件
- 下载文件名清理换行、引号等危险字符
- 下载响应增加 nosniff

未改动但建议服务器层面继续配置:

1. HTTPS 不强制
- 当前程序不强制 HTTPS,没有域名或证书时可以先使用 HTTP
- 后期域名和证书准备好后,再开启 HTTPS 会更安全

2. 正式上线后删除或改名 install.php 和 upgrade.php
- 这两个文件是安装/升级入口
- 升级完成后务必删除或改名

3. config.php 权限
- Linux 建议设置为 600 或至少 640
- 不要让普通 Web 用户以外的系统用户读取数据库密码

4. 数据库账号最小权限
- 数据库账号只给当前库权限
- 不要使用 root 数据库账号运行论坛

5. Nginx 用户额外配置
- 如果使用 Nginx,.htaccess 不生效
- 需要在站点配置里禁止执行 uploads 目录下的 PHP 文件
- 示例:
location ~* ^/uploads/.*\.(php|phtml|php3|php4|php5|php7|phar)$ {
deny all;
}

6. 定期备份
- 建议每天自动备份数据库
- uploads 目录也要同步备份

本次加固不需要数据库升级。
如果你之前已经覆盖过上一版,只需覆盖本次压缩包里的程序文件即可。

回复 0

登录后回复