JSON与Pickle安全性

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,listdict.它们以基本上无关紧要的方式编组/解组,不易受代码注入攻击.


Ned*_*der 9

Pickle的问题是它可以调用任意Python代码.有关 详细信息,请参见http://nadiana.com/python-pickle-insecure.JSON解析器只需要创建字符串,数字,列表,dicts等.它永远不会创建用户定义的类,因此它不需要执行任意Python.