身份、授权与信任边界
辨认主体、凭证、对象和能力,建立授权强制、输入处理、跨站风险与凭据保护的关系。
谁提出什么请求
一个请求包含希望完成的操作和目标对象;系统还需要知道提出请求的主体及其可以产生的效果。主体可以是用户、服务或设备。身份建立把当前交互关联到某个主体;授权决定该主体在当前条件下能否执行指定操作。
登录成功可以证明使用方满足某种身份条件,仍需检查它是否能修改这份订单。对象编号可被猜到、复制或分享,因此编号提供寻址,权限来自独立的规则和当前事实。
凭证怎样建立信任
凭证是用来支持身份或能力判断的材料,如会话标识、访问令牌或证书。接收方验证其来源、完整性、有效期、适用目标和撤销条件,然后建立当前请求的主体信息。客户端自行声明用户名不提供同样依据。
会话把多次请求关联到已建立的身份,需要处理创建、更新、过期、撤销和盗用后的影响。把凭证存在哪个位置决定哪些参与者能读取或发送它;传输保护、浏览器 Cookie 属性和桌面系统凭据设施是具体实现条件。
授权在效果边界强制
检查至少要关联主体、操作、对象和当前条件。角色可以概括一组许可;属性或关系还可以表达租户、所有权、成员关系和对象状态。默认拒绝能让没有明确许可的路径保持受限;新增入口仍需纳入统一策略。OWASP,授权检查建议
隐藏按钮可以减少误操作,受保护执行方仍须检查。查询条件也要包括授权范围,避免先取出所有数据再靠界面筛选。导出、搜索、文件下载、后台任务和实时订阅都是访问入口。
授权检查和效果产生之间,相关事实可能变化。高影响操作需要决定是否在同一事务、版本条件或再次检查下强制当前许可。长期任务也要说明使用提交时的权限快照还是执行时的当前权限。
不可信输入进入哪种解释器
输入校验检查数据形式,输出编码或净化限制内容在目标解释器中的含义。SQL、HTML、路径、命令和模板具有不同语法规则,不能用一份“安全文本”标记代替各自处理。
参数化查询把数据与查询结构分离;枚举映射限制可选列名;文档净化限制允许的元素和属性;进程调用需要避免把外部数据拼成命令。一个内容在纯文本展示中安全,进入 HTML 或脚本上下文后需要重新判断。
跨站请求可能利用浏览器自动携带的凭证;跨站脚本可能在受信页面上下文中执行。CORS 约束特定浏览器读取跨源响应的条件,不能据此声明所有外部客户端都无法调用接口。具体 Web 防护需要组合会话、来源策略、CSRF 和内容处理。
能力、沙箱与最小权限
能力可以限制持有者能调用的对象和动作,例如只允许读取某个文档的短期凭证。限制还可包括范围、期限、次数和资源。向低信任环境暴露一整个通用执行接口,会扩大可产生的效果;窄操作有更清楚的检查边界。
沙箱限制执行环境可访问的文件、进程、网络或系统能力。它的实际保护取决于配置、宿主和漏洞状态;输入指令可以影响决策,却不应能够直接放宽模型外的权限强制。桌面 IPC 和智能体工具都需要按其真实执行边界展开。
凭据和诊断的公开范围
密钥进入服务端配置,避免随浏览器构建产物公开。日志需要保留诊断所需的对象身份和结果,同时控制密码、令牌、个人信息和原始内容。错误响应可向调用者解释合法行动,内部堆栈和秘密应在受限诊断范围保存。
限流和资源配额约束可消耗的工作,帮助控制滥用和故障放大。它们不能代替对象授权,也不能承诺阻止所有攻击。测试应覆盖未登录、越权、跨租户、过期凭证及各旁路入口。
本文整合 TS 安全、授权和外部输入材料;具体会话库、Nest 增强器和 Next 执行边界由服务实践维护。规则来自上述授权原始指南和已读来源,未开展全面安全审计。
最后更新于