pickle序列化:Python对象持久化、底层差异、安全高危警告
博客导语json只能序列化基础数据pickle可以序列化所有Python对象函数、类、实例、列表但存在致命安全漏洞生产使用有严格红线90%新手忽略安全风险。一、pickle四大对应方法dumps对象转二进制字节loads二进制字节转回对象dump对象写入二进制文件load二进制文件读取还原对象二、自定义类对象持久化案例import pickle class User: def __init__(self,name): self.name name u User(小明) # 写入文件 with open(user.pkl,wb) as f: pickle.dump(u,f) # 读取还原实例 with open(user.pkl,rb) as f: new_u pickle.load(f) print(new_u.name)三、pickle vs json核心差异兼容性json跨语言通用pickle仅Python可用数据范围json仅基础类型pickle支持全部Python对象可读性json明文可读pickle二进制不可读四、致命安全问题生产红线绝对禁止解析外网、用户上传的pickle文件pickle二进制数据可注入恶意代码load时自动执行任意系统命令直接服务器沦陷。仅可用于内部可信数据本地存储。

相关新闻