类型注册与安全性
本页介绍类型注册机制和安全配置。
类型注册
在严格模式下,只有已注册的类型才能被反序列化。这可以防止任意代码执行:
import pyfory
# 严格模式(生产环境推荐)
f = pyfory.Fory(strict=True)
class SafeClass:
def __init__(self, data):
self.data = data
# 在严格模式下必须注册类型
f.register(SafeClass, typename="com.example.SafeClass")
# 现在序列化可以正常工作
obj = SafeClass("safe data")
data = f.serialize(obj)
result = f.deserialize(data)
# 未注册的类型将引发异常
class UnsafeClass:
pass
# 在严格模式下这将失败
try:
f.serialize(UnsafeClass())
except Exception as e:
print("安全保护已激活!")
注册模式
模式 1:简单注册
fory.register(MyClass, type_id=100)