我最近遇到了Python pickle和cPickle模块的安全问题。很明显,除非您重写find_class方法以进行基本修改以获得更多的安全性,否则pickle没有实现任何真正的安全措施。但是我经常听说JSON比pickle更安全。
有人能详细说明一下吗?为什么JSON比pickle更安全?
非常感谢! Mark
我最近遇到了Python pickle和cPickle模块的安全问题。很明显,除非您重写find_class方法以进行基本修改以获得更多的安全性,否则pickle没有实现任何真正的安全措施。但是我经常听说JSON比pickle更安全。
有人能详细说明一下吗?为什么JSON比pickle更安全?
非常感谢! Mark
JSON更加安全,因为它基本上比较受限。JSON文档可以编码的Python类型仅包括unicode
、int
、float
、NoneType
、bool
、list
和dict
。这些类型的编组/解组方式基本上是简单的,不容易受到代码注入攻击的影响。