用途:在数据发送给外部实体前进行过滤,确保只传输必要且已授权的数据元素,防止过度数据暴露,落实数据最小化(如 GDPR 第5(1)(c)条)。
主要能力:解决实体收到过多数据的问题,避免敏感数据(PII、凭据、内部标识符)暴露、隐私违规、攻击面扩大及流量拦截导致的数据泄露。核心原则是绝不依赖客户端过滤敏感数据,过滤必须在服务端/API 层发送前完成;客户端过滤会因流量嗅探、直接调用 API、篡改客户端代码、逆向移动应用而失效。
模式流程:发送方准备完整数据,输出过滤器依据上下文获取过滤规范,应用规范移除未授权/不必要数据,仅将过滤后数据发给接收方。
过滤策略:白名单(首选,显式定义包含字段,其余默认排除);黑名单(谨慎使用,新增敏感字段未加入黑名单时会失效);基于上下文的过滤(按用户角色/授权级别、请求类型、API 版本、消费者类型区分)。
实现方式:响应模式校验、数据传输对象(DTO)、投影/选择(如 SELECT id, name, email FROM users)、按视图定制序列化。
安全注意事项:避免通用序列化(如 to_json、to_dict、serialize);递归过滤嵌套对象;错误响应不泄露堆栈或数据库结构;注意分页元数据泄露;确保列表、详情、搜索、导出、关联资源等端点过滤一致。常见需过滤字段包括认证类、PII、内部标识、系统字段、关联实体详情及敏感元数据。
与其他模式关系:与授权互补(授权决定能否访问资源,输出过滤决定可见哪些属性);与输入校验互补。
限制与说明:资料未提供具体代码实现、安装命令或平台支持信息;实施需结合响应模式、DTO 或投影,并定期审查新增敏感字段。