数据安全

档案数据是堂口最敏感的个人信息,也是长期保管的核心资料。 我们把「数据自主、权限清晰、加密到位」作为系统设计的第一原则。

数据自主 · 本地部署

系统私有化部署在教区或堂区自有服务器或电脑,档案数据库不出本机,由堂口自己保管;仅在启用 AI 助手时按最小必要原则传输当次查询所需字段。

四级权限 SQL 级隔离

所有查询自动附加层级过滤条件,从数据访问层杜绝越权,而非仅靠菜单隐藏。

全库加密 · 热备份

数据库支持 SQLCipher AES-256-CBC 全库加密;单文件热备份,无需停机。

四级权限
数据严格隔离

系统管理员、教区管理员、堂区管理员、堂口管理员四级角色。 关键在于——隔离不是靠「菜单不显示」实现的,而是每一条 SQL 查询都会自动附加层级过滤条件。 堂口管理员在技术上无法取到别堂口的数据,即便直接构造请求也不行。

多教区模式下,各教区会自动物理分库,数据文件彼此独立。

AI 档案助手同样受此约束。查询范围强制取自当前账号权限,与提问方式无关。

角色权限范围数据隔离
系统管理员 只做系统配置 无隔离
教区管理员 管理本教区及下属堂区/堂口 仅本教区数据
堂区管理员 管理本堂区及下属堂口 仅本堂区数据
堂口管理员 管理本堂口 仅本堂口数据

认证与访问安全

账号入口的每一道防线,都按生产系统的标准设置。

bcrypt 密码加密

密码采用 bcrypt 算法存储,兼容旧版 MD5 并在登录时自动迁移升级。

登录失败锁定

同一 IP 连续 5 次失败锁定 30 分钟,时长可按堂口需要配置。

闲置 2 小时自动登出

无操作超时自动结束会话,防止他人在您离开后操作档案数据。

强制修改密码

首次登录或重置密码后,必须修改密码才能继续使用。

Session 安全配置

HttpOnly + Secure + SameSite=Strict,登录后重新生成 Session 防固定攻击。

完整操作审计

登录日志与操作日志完整记录时间、IP、操作人与内容,可追溯导出。

数据与部署安全

安全维度实现方式
SQL 注入防护 全部使用 PDO 预处理语句(参数绑定);数据访问层显式禁止数字键拼接 where 条件
XSS 防护 所有输出经 htmlspecialchars() 转义
CSRF 防护 表单 Token + X-CSRF-Token 请求头双通道校验,时序安全比对
数据库加密 SQLCipher 全库 AES-256-CBC 加密(V1.2.2 起)
敏感文件保护 Nginx / Apache / IIS 三平台伪静态规则,禁止直接访问 .db、.env、.log
目录隔离 网站根目录指向 public/,数据库与配置文件位于 Web 可访问范围之外
错误信息 生产环境关闭错误显示(display_errors=0),错误仅写入日志
安全响应头 X-Frame-Options、X-Content-Type-Options、Referrer-Policy
HTTPS 强化 HTTPS 环境下自动添加 HSTS 响应头
应用密钥 APP_KEY 32 位随机串,用于加密签名

安全是双向的。请务必:① 为站点启用 HTTPS 并把 SESSION_SECURE 设为 true; ② 部署后删除 public/ 下的迁移脚本;③ 定期备份并存放到服务器以外。

备份与恢复

教籍档案一旦丢失便无法重建,备份是这个系统里最不该省的一步。

单文件

复制即备份

SQLite 数据库是单个文件,复制一份就完成备份,不需要导出、不需要停机。

热备份

不锁库不停机

使用 .backup 命令进行热备份,备份期间系统可正常使用。

可恢复

一键还原

需要恢复时,用备份文件替换当前数据库文件即可,无额外转换步骤。

建议配置每日 cron 自动备份、保留 30 天,并把备份文件同步到服务器以外的位置。 具体命令参见安装部署章节。

还有安全方面的疑问?

欢迎就部署方式、加密方案或数据合规问题与我们详细沟通。