在一个应用中,如果攻击者控制并修改了一个对象的原型,那么将可以影响所有和这个对象来自同一个类、父祖类的对象。这种攻击方式就是原型污染。
let foo = {bar: 1} console.log(foo.bar) //输出1 foo.__proto__.bar = 2 //更改foo的原型,即Object let zoo = {} console.log(zoo.bar) //输出2
Lodash 库爆出严重安全漏洞,波及 400 万 + 项目
深入理解 JavaScript Prototype 污染攻击