主页 > 游戏开发  > 

JavaScript原型链污染

JavaScript原型链污染
1.prototype是一个类的属性,所有类对象在实例化的时候将会拥有prototype中的属性和方法 2.一个对象的proto属性,指向这个对象所在的类的prototype属性 1.每个构造函数(constructor)都有一个原型对象(prototype) 2.对象的proto属性,指向类的原型对象prototype 3.JavaScript使用prototype链实现继承机制

我们思考一下,哪些情况下我们可以设置proto的值呢?其实找找能够控制数组(对象)的“键名”的操作即可:

1.对象merge

2.对象clone(其实内核就是将待操作的对象merge到一个空对象中)

JSON解析的情况下,proto会被认为是一个真正的“键名”,而不代表“原型”,所以在遍历o2的时候会存在这个键。

 深入理解JavaScript Prototype污染攻击

标签:

JavaScript原型链污染由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“JavaScript原型链污染