项目名称

511yj 个人导航+密码本一体化Web系统

项目简介

基于PHP+SQLite开发的个人内网/公网轻量网页工具,分为两大模块:网址导航模块、个人密码本模块。 初衷:自建个人导航页,同时解决各类网页、APP账号密码容易遗忘的问题;仅本人登录使用,数据本地存储在群晖NAS,不依赖第三方密码服务商。

运行环境

  • 服务器:群晖 DSM,Web Station
  • PHP版本:PHP 8.3
  • 数据库:SQLite(单文件数据库,无需独立数据库服务)
  • Web服务:Apache(.htaccess 安全规则生效)
  • 前端:Bootstrap + 原生CSS,支持响应式
  • 附加特性:PWA网页应用、HTTPS反向代理

项目目录结构

网站根目录
├── index.php                # 导航首页
├── passwords.php            # 密码本展示页面
├── config.php               # 全局配置:加密函数、登录校验、数据库连接
├── login.php / logout.php   # 登录、退出登录
├── site.db                  # SQLite数据库文件(存放导航链接、密码记录)
├── .htaccess                # 安全配置:禁止目录浏览、禁止直接下载db数据库
├── assets/
│   └── css/style.css        # 样式:暗色模式、移动端自适应样式
├── admin/
│   └── passwords.php        # 密码后台管理:新增/编辑/删除/导出备份
└── install.php              # 初始化建表脚本,部署完成后删除

完整功能清单

1. 网址导航模块

  • 自定义添加、修改、删除网址链接
  • 自动识别链接协议:不带http/https自动补全http://;已有协议头不会被强制替换
  • 适配手机、电脑双端页面布局

2. 密码本模块(核心新增功能)

  • 密码记录区分两类:网页账号密码APP应用密码
  • 字段:名称、网址/应用名、账号、密码、创建时间、备注
  • 权限控制:必须登录后才能查看密码内容,游客无法访问
  • 操作:新增、修改、删除密码条目
  • 密码AES加密存储:数据库内不保存明文密码,读取时解密
  • 导出备份功能:支持导出密码记录做本地备份

3. UI与体验优化迭代

  1. 移动端适配:原始布局手机端侧边栏过长,页面上下堆叠,引入Bootstrap响应式布局重构CSS,手机端页面体验优化
  2. 暗色模式:支持深色主题切换
  3. PWA改造:网页可添加到手机桌面,像App一样打开使用(需要HTTPS环境完整生效)

4. 安全防护配置

  1. .htaccess配置:关闭目录浏览,禁止浏览器直接下载site.db数据库文件
  2. 登录鉴权:所有密码管理页面做登录校验,未登录拦截
  3. HTTPS配置:群晖反向代理+Let’s Encrypt免费证书,外网访问全站加密;

    调试记录:80端口被运营商限制,证书申请多次失败;调整路由器端口映射、反向代理端口,最终HTTPS正常生效,浏览器安全锁标识正常。

📝 开发&调试日志(时间线)

  1. 阶段1:基础导航搭建 搭建基础PHP导航页面,实现链接增删改查;测试链接协议自动处理逻辑;部署在群晖Web Station,内网访问调试。
  2. 阶段2:新增密码本子系统 在现有导航框架上扩展密码本功能;数据库新增密码表,实现AES加密存储密码;区分网页密码、APP密码两种类型;增加导出备份功能。
  3. 阶段3:页面移动端优化 手机测试发现布局缺陷:侧边导航栏占用过长,内容挤压在下方。引入Bootstrap重构页面CSS,实现自适应布局。
  4. 阶段4:安全加固 编写.htaccess防护规则,防止数据库泄露;配置文件增加XSS转义函数,页面输出安全处理。
  5. 阶段5:PWA支持 + HTTPS外网调试 增加PWA清单,支持添加到手机桌面; 重点调试HTTPS:遇到端口冲突、证书验证失败、路由器端口映射错误等问题。反复调整反向代理、路由器端口转发,最终成功部署HTTPS,PWA完整功能可用。

⚠️ 维护注意事项(重点,留存)

  1. 隐私安全红线
    • 项目文档仅记录架构流程,严禁对外发布源码、数据库、config.php加密密钥
    • site.db是核心数据文件,内含加密密码,定期备份,禁止外传
    • config.php内ENCRYPT_KEY加密密钥属于核心机密,一旦泄露,数据库内加密密码存在被破解风险
  2. 部署操作提醒
    • 首次部署运行install.php建表,完成后立刻删除install.php,防止他人重建数据库覆盖数据
    • 公网访问必须启用HTTPS;HTTP环境PWA功能不全
    • 更换服务器迁移:完整备份site.db + config.php,上传新服务器,保证加密密钥不变,密码才能正常解密
  3. 后续可扩展方向(预留)
    • 密码分类标签
    • 密码强度校验
    • 备份文件增加密码保护

文档用途

  • 保存在网页/本地,作为项目维护手册;后续修改、新增功能时快速回顾整体架构、历史踩坑点