对象合并工具接收外部键路径时,怎样阻断原型链篡改并验证修复有效?
简答题中等414 次浏览
参考答案与解析
# 核心结论
对象合并、深层路径赋值和反序列化只要允许外部数据决定键或路径,就应把原型相关路径视为结构性危险输入。修复不能只过滤 __proto__,还要拒绝 constructor、prototype 及其多段组合,并通过字段模式限制允许属性、类型、深度、节点数和总大小。更可靠的设计是避免把不可信对象递归合并到权限、模板或全局配置中,改用明确字段映射。修复有效必须同时证明危险输入被拒绝、共享原型未变化、敏感读取点不信任继承属性,并且生产实际使用了修复后的依赖和制品。
# 底层机制
普通对象读取自身不存在的属性时可能沿原型链查找。若路径工具将攻击者提供的值写入共享原型,之后创建的对象可能表现出攻击者指定的默
