首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用serpent序列化程序进行安全的对象筛选

使用serpent序列化程序进行安全的对象筛选
EN

Stack Overflow用户
提问于 2013-10-15 09:23:05
回答 1查看 699关注 0票数 1

据我所知,在序列化对象时,使用serpent比pickle更安全。

我使用以下类:

代码语言:javascript
复制
import serpent

class Test:
    def save(self, fileName) :
        ser = serpent.dumps({"schema": self}, indent=True)
        open(fileName, "wb" ).write(ser)


    def load(self, fileName) :

        self = serpent.load(open(fileName, "rb"))["schema"]



    def someFunction(self) :

        [...]

我希望能够做一些像这样的事情

代码语言:javascript
复制
test = Test()
test.save("afile")

[...]

test2 = Test().load()
test2.someFunction()

但是,当我调用Test().load()时,我得到的是对象树,而不是对象。所以我不能用它。如何从对象树中获取对象?这样做,我是否会得到完全相同的安全问题,我有与泡菜?

编辑:从Python : serpent序列化为Pyro's doc文字表达式。接受相当多的不同类型。许多将被序列化为字典。如果需要的话,您可能需要在接收端显式地将文字转换回特定的类型,因为大多数自定义类都不会自动处理。

所以,我猜最后的问题是:有什么方法可以将这种字面量字典转换回object吗?我想,它一定被很多人制作过很多次……

EN

回答 1

Stack Overflow用户

发布于 2013-10-16 14:42:19

这个问题可能有更好的答案,但由于没有人提出,我可以分享一些我自己研究的解决方案。这个问题的解决方案在很大程度上取决于需要序列化/反序列化的类的结构,但是要了解如何进行这样的解析,可以看看在Pyro4.util中实现的dict_to_class方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19371857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档