Skip to content

安全

针对 Memos 部署的安全加固实用指南

Memos is self-hosted by design. You control the infrastructure, storage, and access policies.

令牌安全模型

我们使用三种形式的令牌来进行认证:

令牌类型生命周期存储方式提示
Access token (JWT)15 分钟客户端的内存中无状态;不需要查询数据库即可验证
Refresh token (JWT)30 天仅支持 HTTP cookie存储在数据库中,可撤销,生产环境中 SameSite=LaxSecure=true
个人通行令牌用户自行选择数据库中,SHA-256 哈希串前缀 memos_pat_;令牌的原始值只会在创建时显示一次

JWT 密钥有些类似 UUID,会在第一次运行时自动创建,并存储到数据库中。在 demo 模式下,密钥固定是 usememos —— 永远不要在生产环境中部署 demo 模式。

核心建议

  • 当部署在反向代理上时,将 MEMOS_INSTANCE_URL 设置为实例的 URL。
  • 如果你的实例是私有的,请禁用用户注册。
  • 如果你不需要公开任何内容,请 禁用公开备忘录
  • 给你的实例配置 HTTPS。
  • 复查谁可以创建个人通行令牌,谁可以发布公开笔记。

会话和认证卫生

  • 谨慎保护管理员账号
  • 如果可以,团队实例请使用单点登录
  • 如果凭证和令牌已经泄露或不再使用,及时删除
  • 避免让旧的个人通行令牌无限期保持激活状态
  • 永远不要在生产环境中使用 demo 模式(demo 模式下写死了 JWT 密钥)

使用反向代理时,有如下要求

你的代理需要:

  • 终止 TLS。
  • 保留 HostX-Forwarded-* 标头。
  • 暴露和 MEMOS_INSTANCE_URL 中配置的一样的公共 URL。

附件和分享需要考虑的事

安全问题不只是针对登录,公共的笔记可能会暴露如下信息:

  • 笔记内容
  • 附件文件
  • 链接,以及笔记中的引用内容

考量安全问题时,同样思考一下可见性问题和附件问题。

备份和恢复

安全问题同样涵盖可恢复性,常规备份需要包含:

  • 数据库
  • 附件文件如果没有存储在数据库中,备份文件存储
  • 创建实例时的部署配置

最后更新于:

评论区
评论区空空如也
发送评论
名字
0 / 20
邮箱
0 / 100
评论内容
0 / 140
由于是非实名评论,所以不提供删除功能。如果你需要删除你发送的评论,或者是其他人的评论对你造成了困扰,请 发邮件给我 。同时评论区会使用 AI + 人工的方式进行审核,以达到合规要求。