原型污染是JavaScript中的安全漏洞,攻击者可以向全局对象的原型添加属性,导致用户对象继承这些属性,从而引发DOM XSS或远程代码执行。常见的攻击来源包括用户输入的URL和JSON数据,攻击者通过不当合并操作污染原型,控制应用程序行为。
Node.js 存在多个安全漏洞,包括对任意主题替代名称(SAN)类型的接受,可能导致绕过名称约束。修复版本禁用 URI SAN 类型,并对多值相对区分名称处理不当。此外,console.table() 函数也存在原型污染风险。相关漏洞详情将发布在 CVE-2021-44531、CVE-2021-44532 和 CVE-2021-44533。
本文讲解JavaScript原型与原型链:对象通过__proto__指向原型,函数具有prototype属性,实例的原型即构造器的prototype。访问属性时会沿原型链查找。ES6 class是构造器的语法糖,extends实现原型继承与组合继承。原型污染可能导致安全漏洞,可用Object.create(null)和Object.freeze预防。
完成下面两步后,将自动完成登录并继续当前操作。