专栏名称: 船山信安
船山院士网络安全团队唯一公众号,为国之安全而奋斗,为信息安全而发声!
今天看啥  ›  专栏  ›  船山信安

Python原型链污染

船山信安  · 公众号  ·  · 2024-08-27 00:00
    

文章预览

从Merge开始 我们这里还是从常见的merge函数来做入手举例,因为其实对于原型链污染来说,本质上都是一个东西,只是基于不同的语言特性,某些存在局限性,但是讲到merge大家都应该想到和原型链污染有关。 这里我就把这个关键的merge的定义放在这里,其实是同nodejs一样的操作 def merge (src, dst): # Recursive merge function for k, v in src.items(): if hasattr (dst, '__getitem__' ): if dst.get(k) and type (v) == dict : merge(v, dst.get(k)) else : dst[k] = v elif hasattr (dst, k) and type (v) == dict : merge(v, getattr (dst, k)) else : setattr (dst, k, v) 可以看到也是通过键值互换来进行的污染,但是这里要注意在python中的object的属性是不可以被污染的,具体的后面会说。 一个最简单的实例: def merge (src, dst ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览