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
31 lines
1.3 KiB
Plaintext
31 lines
1.3 KiB
Plaintext
# ---------------------------------------------------------------------------
|
|
# 运行时数据(绝不入库)
|
|
# data/ —— SQLite 数据库等敏感数据
|
|
# uploads/icons/* —— 抓取/上传的网站图标(每个目标网站一份)
|
|
# uploads/site/* —— 管理员上传的**本站**图标整套尺寸
|
|
# ⚠️ 与 uploads/icons 是两件事,别合并成一条通配:
|
|
# 它们是不同维度(本站一个 vs 每站一个),
|
|
# 分开写才能各自加白名单、也便于日后单独清理。
|
|
# ---------------------------------------------------------------------------
|
|
# ⚠️ 只忽略数据本件,白名单放行 .htaccess —— 否则部署后 data/ 没有防护文件,
|
|
# SQLite 数据库可被公网直接下载(nav.db 里含管理员哈希与全部站点数据)。
|
|
/data/*
|
|
!/data/.htaccess
|
|
!/data/index.html
|
|
/uploads/icons/*
|
|
!/uploads/icons/.gitkeep
|
|
/uploads/site/*
|
|
!/uploads/site/.gitkeep
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# 部署脚本(与具体服务器、账号、路径绑定)
|
|
# 不属于应用源码,按需放在仓库之外,不入库
|
|
# ---------------------------------------------------------------------------
|
|
/deploy/
|
|
|
|
# 杂项
|
|
*.db
|
|
*.log
|
|
.DS_Store
|
|
Thumbs.db
|