从 RBAC 到 ReBAC:用 OpenFGA 把多租户应用的权限判断变成可验证的关系模型
一个应用刚起步时,权限实现往往很直接:用户表有一个 role 字段,后端在路由或 service 中判断管理员、成员和访客。这个方案没有错;对于资源少、角色固定的后台,它甚至是成本最低的方案。 问题通...
最新内容
一个应用刚起步时,权限实现往往很直接:用户表有一个 role 字段,后端在路由或 service 中判断管理员、成员和访客。这个方案没有错;对于资源少、角色固定的后台,它甚至是成本最低的方案。 问题通...
.env 并不是秘密管理系统。它适合让本地程序读取一组配置,却很难回答几个真正影响安全的问题:某个 CI 任务到底读过哪把密钥?开发、测试和生产是否共用了同一份凭据?轮换后,旧值在哪里失效?更常见的事...
排查一条来自公网的异常请求时,日志通常只给出 IP:8.8.8.8、203.0.113.x 或一串反向代理转发链。单独看地址,很难决定它该进入哪条处理路径:这是公司云出口、已知 CDN、某个普通运营商...
排查一条来自公网的异常请求时,日志通常只给出 IP:8.8.8.8、203.0.113.x 或一串反向代理转发链。单独看地址,很难决定它该进入哪条处理路径:这是公司云出口、已知 CDN、某个普通运营商...
给 AI 编程 Agent 配 GitHub、Slack、云平台或内部 API 凭据,最常见的做法仍是把长效 Token 写进环境变量。它足够省事,却把两类本应独立的问题绑到了一起:正在发起请求的进程...
让 Claude Code、Codex 一类编程 Agent 直接在开发机上执行命令,最容易犯的错不是“没有装 Docker”,而是把几个不同的问题混成一个问题:误删文件、提示注入诱导外传、以及恶意依...
独立开发者售卖桌面软件、内部工具或自托管产品时,常见的授权流程看似简单:支付成功后生成一串许可证,客户端启动时向服务器校验。真正难的部分不是生成随机字符串,而是保护“能签发有效许可证的私钥”。一旦私钥...
让 AI 编程 Agent 在终端里完成一次任务并不困难;真正困难的是让它持续运行、能接收消息、能调用 MCP 工具,还不会在你离开键盘后把权限边界悄悄扩大。一个接入 Telegram、Discord...
开发、运维或自托管服务时,SSH 隧道往往是最不起眼、却最容易失控的一层:本地要连远端只开放在内网的 PostgreSQL;调试服务要经过跳板机;临时 SOCKS 代理要在网络波动后重新建立。命令本身...
服务端程序里有一类数据很容易被忽略:API token、会话密钥、数据库口令、MAC 值,以及刚从配置或网络读取、尚未完成校验的字节。即使业务代码从不把它们写进日志,普通堆内存也可能在对象生命周期结束...