Mar*_*ark 12 python json pickle
我最近遇到了Python pickle和cPickle模块的安全问题.显然,除非你将find_class方法作为基本修改覆盖以获得更高的安全性,否则在pickle中没有实现真正的安全措施.但我经常听说JSON更安全.
任何人都可以对此进行详细阐述吗?为什么JSON比pickle更安全?
非常感谢!标记
Sin*_*ion 15
json更安全,因为它基本上更有限.一个JSON文档可以编码唯一的蟒蛇类型unicode
,int
,float
,NoneType
,bool
,list
和dict
.它们以基本上无关紧要的方式编组/解组,不易受代码注入攻击.
Pickle的问题是它可以调用任意Python代码.有关 详细信息,请参见http://nadiana.com/python-pickle-insecure.JSON解析器只需要创建字符串,数字,列表,dicts等.它永远不会创建用户定义的类,因此它不需要执行任意Python.