当前状态
文章加密已经是后台可用功能。编辑器中的「文章加密」开关会将正文在浏览器内加密,服务器只保存密文:
判定规则:只有
protected 为真且 enc 是对象时,才被视为受保护文章;否则按普通文章处理。
加密方案
服务端不做加解密:它只存取密文并保证明文
content 不出库。加密与解密都只在浏览器完成。
读者体验
- 文章详情返回
protected: true、content: ''、enc: {...}。 - 前台渲染锁屏,读者输入密码后在本机解密。
- 密码错误时拒绝解密;密码不会发送到服务器。
- 后台编辑器可将密码记在当前浏览器
localStorage,便于日后查看;公共电脑不要使用。
受保护文章的行为
草稿预览链接
草稿预览使用另一套 HMAC 签名机制,与正文加密相互独立:POST /api/admin/preview-link生成链接,默认 7 天、可设 1–30 天- 链接只对未发布文章有效,凭 token 读取,无需登录
- 未配置
BLOG_PREVIEW_SECRET时,密钥由管理员密码哈希派生;修改密码会让旧链接全部失效 - 预览页
noindex、不统计、不加载评论,并返回no-store
