开发日志

开发日志 004:为内容后台补齐会话与写入安全

围绕登录、会话、同源写入和上传校验,收紧个人博客后台的安全边界。

开发日志2026-07-04个人博客系统开发日志后台安全会话管理文件上传

背景

后台已经可以修改长期内容,因此安全重点不再只是“有一个登录密码”,而是要限制会话被滥用、写接口被跨站调用,以及伪装文件进入上传目录的可能性。

会话控制

登录后使用带签名的 Cookie 保存会话信息,并将会话设置为有限生命周期:既有空闲超时,也有绝对有效期。服务端会验证会话签名、浏览器 User-Agent 绑定关系与当前活跃记录,并限制同一管理员只保留一个有效会话。新的登录会使旧会话失效,降低共享设备或遗留 Cookie 带来的风险。

会话状态保存在独立内容目录的系统子目录中,并使用受限文件权限与原子写入。这样它既不会混入代码发布,又能在服务重启后保持必要的登录状态控制。

写接口保护

登录、保存内容、上传图片和退出等操作都要求同源请求。登录接口还按真实来源 IP 进行限流,减少连续猜测密码的空间。Markdown 渲染不直接信任文章中的 HTML,避免将编辑内容转化为可执行脚本;搜索引擎规则也明确排除后台与 API 路径。

上传功能仅允许 JPEG、PNG、WebP 和 GIF,并检查二进制文件签名。这个检查是对扩展名与 MIME 声明的补充,避免把伪装后的可执行或矢量内容直接作为站点资源发布。

结果

本阶段没有追求复杂的多角色权限系统,而是以个人单管理员场景为边界,把最关键的认证、写入和上传环节收紧。安全能力与文件化内容架构保持一致,配置和状态也都能按部署环境独立管理。