本文主要是介绍(Python)PyYAML反序列化漏洞,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
基本概念
(引用百度)YAML是“YAML不是一种标记语言”的外语缩写;但为了强调这种语言以数据做为中心,而不是以置标语言为重点,而用返璞词重新命名。它是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。
PyYAML是Python中YAML语言的编辑器和解释器。
安装:pip install PyYAML
两个函数:
yaml.dump():将一个Python对象序列化生成为yaml文档。
yaml.load():将一个yaml文档反序列化为一个Python对象。
简单的用例:
可以看到,User对象经过yaml序列化之后内容为一行字符串,简单解释一下:“!!pythonobject”为yaml标签,yaml.load()会识别该标签并调用相应的方法执行反序列化操作;冒号后面的“__main__”为py文件名,这里为本文件的意思;“User”为序列化的对象类型,后面紧跟的大括号即为该对象的属性及其属性值。
这篇关于(Python)PyYAML反序列化漏洞的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!