安装向导 install.php + data/ 防护文件入库

install.php(新增):
- 环境自检(PHP 版本 / PDO SQLite / mbstring / GD / 网络抓取 / fileinfo
  / data 与 uploads 可写性),缺 GD 只警告不阻断
- 输入校验:用户名格式、密码 ≥6 位、两次一致
- 建库 + 建管理员 + 写 data/install.lock
- 已存在管理员时拒绝安装(防删锁重装夺权);锁文件删掉也不认
- 装完展示数据库信息(类型/路径/大小/表内条目数)

data/ 防护文件入库(关键安全修复):
- 原 .gitignore 整目录排除 /data/,导致 data/.htaccess 永远进不了仓库,
  部署后 data/ 没有禁止 Web 访问的规则 —— nav.db 可被公网直接下载,
  里面是管理员密码哈希和全部站点数据
- 改为 /data/* + 白名单放行 .htaccess、index.html
This commit is contained in:
2026-11-03 21:14:40 +08:00
parent e81e6900e2
commit 286a01beb8
4 changed files with 327 additions and 1 deletions
+10
View File
@@ -0,0 +1,10 @@
# 禁止 Web 访问 data 目录(SQLite 数据库等敏感文件)
# ⚠️ 这个文件必须进仓库:nav.db 里含管理员密码哈希与全部站点数据,
# 一旦能被公网下载,等于整站失守。
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order allow,deny
Deny from all
</IfModule>
+1
View File
@@ -0,0 +1 @@
<!doctype html><html><head><meta charset="utf-8"><title>404</title></head><body></body></html>