安全酸洗工具

securepickle的Python项目详细描述


安全泡菜

为什么要用securepickle而不是pickle?

正如pickleexplains的文档一样,pickle是不安全的。{1}如果有人使用恶意的文件系统}来访问该文件系统,您可能会使用该文件系统存储恶意数据。在

如果您不确定是否需要它,安全起见可能比抱歉好。securepicklepickle的替换,因此您不需要更改任何加载代码。在

为什么我应该使用securepickle而不是另一个安全的酸洗解决方案?在

securepickle有0个依赖项。它只使用python标准库,并且支持python2和python3。 securepickle具有文档化的文件格式,并保证向后兼容。即使securepickle库或使用的加密原语发生更改,也可以取消数据的绑定。在

如何使用它?在

import securepickle as pickle
# DON'T USE THIS KEY! Make sure to generate your own key randomly
securepickle.set_key("BO4cHKNaJE0GmiShTQ8mL8oSvqBDCx2q5Xdq7iNeCaU")

...

pickle.loads(...)
pickle.load(...)
pickle.dump(...)
pickle.dumps(...)

我应该把钥匙放在哪里

请确保不要将密钥存储在pickled数据的同一位置。还建议不要将密钥存储在源代码中。在

securepickle可以防止什么类型的攻击

securepickle防止arbitrary code execution攻击者修改(或直接影响)pickled数据。 例如,如果您的数据库遭到破坏,或者您在文件系统中存储pickled文件而不考虑文件访问权限,就会发生这种情况。在

securepickle不会NOT阻止随机的人解取pickled数据,即使没有密钥。如果您关心的是这种情况,您应该使用标准的数据库或磁盘加密机制。在

文件格式是什么

securepickle|<version>|<crypto primitive>|<signature>|<pickled data> 支持的加密基元字符串列表:

  • HMAC(SHA512)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java OnResizeListener或OnDrawListener或类似的东西   java Orika映射嵌套子列表   保存时java Heroku请求超时代码H12   数据库在Java中出现socket读取超时异常的原因是什么?   java如何更改来自Sqlite数据库的特定数据在Listview中的行颜色   java JAXB解组器无法正确处理XML中的列表   java Android日期时区让我抓狂   java不透明属性在Swing中如何工作?   eclipse从JavaEE代码生成流程图   java如何在Hibernate中从相关表中获取计数   java Glassfish部署了项目的依赖项库   java使内容适合JavaFx中的WebView   java不满意的链接错误libcrypto。所以1.0.0   循环中java数组的使用   java找出哪个包调用服务