实例化直接用JSON数据填充的python类对象是否安全?

时间:2016-11-06 11:18:53

标签: python json class

我正在python中编写一个p2p项目,它涉及在不受信任的节点之间发送序列化数据。为方便起见,我最初使用了pickle,但这是不安全的,现在我将我的(有时非常复杂和高度嵌套的)类对象转换为JSON进行传输和存储。

我的问题是,在没有恶意代码运行风险的情况下执行以下操作是否安全:

#class initially created:

class MyClass():
 def __init__(self, cat, list_of_dogs, nested_list_of_zebras):
  self.cat = cat
  self.dogs = list_of_dogs
  self.zebras = nested_list_of_zebras

p = MyClass(cat, dog_list, zebra_list)
json_obj = jsonpickle.encode(p)

#on the receiving end (or when bringing out of storage) we do

class ReCreateMyClass():
 def __init__(self, python_obj)
  self.cat = python_obj['cat']
  self.dogs = python_obj['dogs']
  self.zebras = python_obj['zebras']

def decode_js(python_obj):
  return ReCreateMyClass(json.loads(python_obj))

# is this safe?

class_obj = decode_js(python_obj)

我知道可以更好地自动执行此操作(Is parsing a json naively into a Python class or struct secure?)但以这种方式使用JSON执行恶意代码的风险是否存在?

0 个答案:

没有答案