Skip to main content

当前状态

文章加密已经是后台可用功能。编辑器中的「文章加密」开关会将正文在浏览器内加密,服务器只保存密文: 判定规则:只有 protected 为真且 enc 是对象时,才被视为受保护文章;否则按普通文章处理。

加密方案

服务端不做加解密:它只存取密文并保证明文 content 不出库。加密与解密都只在浏览器完成。

读者体验

  1. 文章详情返回 protected: true、content: ''、enc: {...}。
  2. 前台渲染锁屏,读者输入密码后在本机解密。
  3. 密码错误时拒绝解密;密码不会发送到服务器。
  4. 后台编辑器可将密码记在当前浏览器 localStorage,便于日后查看;公共电脑不要使用。

受保护文章的行为

草稿预览链接

草稿预览使用另一套 HMAC 签名机制,与正文加密相互独立:
  • POST /api/admin/preview-link 生成链接,默认 7 天、可设 1–30 天
  • 链接只对未发布文章有效,凭 token 读取,无需登录
  • 未配置 BLOG_PREVIEW_SECRET 时,密钥由管理员密码哈希派生;修改密码会让旧链接全部失效
  • 预览页 noindex、不统计、不加载评论,并返回 no-store
详见预览链接。

相关页面