该泡菜模块文档右一开始说:
警告:pickle模块不能防止错误或恶意构造的数据.切勿取消从不受信任或未经身份验证的来源收到的数据.
然而,在限制全局变量的情况下,它似乎描述了一种使用允许对象的白名单来使unpickling数据安全的方法.
这是否意味着如果我使用RestrictedUnpickler仅允许某些"基本"类型的数据,或者是否存在此方法无法解决的其他安全问题,我是否可以安全地解开不受信任的数据?如果有,还有另一种方法可以使unpickling安全(显然代价是无法解开每个流)吗?
对于"基本类型",我的意思是:
boolstr,bytes,bytearrayint,float,complextuple,list,dict,set和frozenset