resolve safe pickle err
This commit is contained in:
@@ -8,16 +8,20 @@ class SafeUnpickler(pickle.Unpickler):
|
||||
# 定义允许的安全类
|
||||
safe_classes = {
|
||||
# 在这里添加其他安全的类
|
||||
'latex_actions.LatexPaperFileGroup': LatexPaperFileGroup,
|
||||
'latex_actions.LatexPaperSplit' : LatexPaperSplit,
|
||||
'LatexPaperFileGroup': LatexPaperFileGroup,
|
||||
'LatexPaperSplit' : LatexPaperSplit,
|
||||
}
|
||||
return safe_classes
|
||||
|
||||
def find_class(self, module, name):
|
||||
# 只允许特定的类进行反序列化
|
||||
self.safe_classes = self.get_safe_classes()
|
||||
if f'{module}.{name}' in self.safe_classes:
|
||||
return self.safe_classes[f'{module}.{name}']
|
||||
match_class_name = None
|
||||
for class_name in self.safe_classes.keys():
|
||||
if (class_name in f'{module}.{name}'):
|
||||
match_class_name = class_name
|
||||
if match_class_name is not None:
|
||||
return self.safe_classes[match_class_name]
|
||||
# 如果尝试加载未授权的类,则抛出异常
|
||||
raise pickle.UnpicklingError(f"Attempted to deserialize unauthorized class '{name}' from module '{module}'")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user