【问题标题】:Security issues storing config file in json/CPickle将配置文件存储在 json/CPickle 中的安全问题
【发布时间】:2012-03-05 13:37:40
【问题描述】:

我试图弄清楚,在配置文件中存储一些用于数据库连接和其他私人信息的凭据的最安全和灵活的解决方案。 这是一个 python 模块,用于登录到不同的处理程序(mongodb、mysqldb、文件等)系统中用户活动的历史记录。

这个日志记录模块附加了一个处理程序,我需要在其中为每个处理程序加载配置文件。 IE。数据库、用户、通行证、表等

经过对web和stackoverflow的一些研究,我主要看到了Json和CPickle之间的安全风险比较,但关于eval方法和类型限制,更多的是配置文件存储问题。

我想知道在 json 中存储凭据是否是一个好主意,因为在服务器中有一个 .json 配置文件(日志处理程序将从该文件读取数据)涉及安全风险。我知道这个 .json 文件可以通过 http 请求来检索。如果参数存储在 .py 代码中的 python 对象中,我想会有更多的安全性,因为这个文件的任何请求都将首先由服务器解释,但我失去了模块化和易于修改的灵活性这些数据。

在将此类配置文件存储在服务器中并由某些 Python 类访问时,您对此类安全问题有何建议? 提前致谢, 卢楚克斯。

【问题讨论】:

    标签: python json security configuration-files pickle


    【解决方案1】:

    我会考虑加密凭证文件。使用它的进程需要一个密钥/密码来解密它,你可以将它存储在其他地方——甚至在服务器启动时以交互方式输入它。这样一来,您就不会出现单点故障(当然,一个坚定的入侵者最终可以将各个部分拼凑在一起)。

    (当然,您还应该尝试保护服务器,以便您的凭据不能仅通过 http 请求获取)

    【讨论】:

    • 谢谢@alexis。良好的加密是一种解决方案,尽管 JSON 不能存储不可打印的字符,从而限制了要使用的加密算法。我为我的序列化方法实现了一个装饰器,它加密要序列化的数据:) 我在 json 库中找不到任何关于加密内置的文档。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 2013-08-23
    • 1970-01-01
    • 1970-01-01
    • 2019-08-15
    • 2020-12-29
    相关资源
    最近更新 更多