文章预览
原型链污染是Nodejs应用程序中的一种安全漏洞,通过修改JavaScript对象的原型链来篡改应用程序的行为。这种漏洞可能导致恶意代码执行、绕过访问控制或泄露敏感数据等严重后果。 1、 原型和原型链 JavaScript没有父类和子类这个概念,也没有类和实例的区分,而JavaScript中的继承关系则是靠一种很奇怪的“原型链”模式来实现继承。 1.1JavaScript 对象 在JavaScript中几乎所有的事物都是对象,如下代码: var a = { "name" : "HoKong" , "pass" : "password" } console .log(a[ 'name' ]) console .log(a.pass) console .log(a); 其中访问对象的属性,可以有两种方式: a .name ; a ["name"] ; 1.2原型的定义 每个对象在JavaScript中都具有一个原型对象。这个原型对象通过对象的内置属性__proto__指向其构造函数的prototype指向的对象。换句话说,每个对象都是由一个构造函数创建的。在Ja
………………………………