nodejs原型链污染

runwu2204 Lv6

参考 js原型链污染(超详细)-CSDN博客

原型链类似于父类

由相同类形成的对象 其共用同一种原型 所以可以通过更改其中一个对象的原型达成修改所有对象的目的

例如

1
2
3
4
5
6
7
8
in: tmp={'a':1}
out: {'a':1}
in: tmp.a.constructor.prototype==tmp.__proto__ //此处是tmp.a(number)的原型跟tmp(object)原型不对应
out: false
in: tmp.b={'c':2}
out: {'c':2}
in: tmp.b.constructor.prototype==tmp.__proto__ //此处是tmp.b(object)跟tmp(object)类型一样,所以共用原型
out: true

node js中万物皆对象

当该对象中没有这个属性时会从其原型寻找,所以可以通过修改其原型来达成修改该对象属性的目的

此处Object指任意对象 class指任意类

可以有下列办法

1
2
3
Object.constructor.prototype
Object.constructor.__proto__
class.prototype

待完成

  • 标题: nodejs原型链污染
  • 作者: runwu2204
  • 创建于 : 2024-02-26 23:56:38
  • 更新于 : 2024-02-27 18:15:18
  • 链接: https://runwu2204.github.io/2024/02/26/Web/nodejs/nodejs原型链污染/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
nodejs原型链污染