Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将配置文件存储在json/CPickle中的安全问题_Python_Json_Security_Configuration Files_Pickle - Fatal编程技术网

Python 将配置文件存储在json/CPickle中的安全问题

Python 将配置文件存储在json/CPickle中的安全问题,python,json,security,configuration-files,pickle,Python,Json,Security,Configuration Files,Pickle,我试图找出它,这是在配置文件中存储数据库连接凭据和其他私有信息的最安全、最灵活的解决方案。 它位于python模块内,用于将系统中用户活动的历史记录登录到不同的处理程序(mongodb、mysqldb、文件等) 这个日志模块附带了一个处理程序,我需要在其中为每个处理程序加载配置文件。即数据库、用户、通行证、表格等 在对web和stackoverflow进行了一些研究之后,我主要看到了Json和CPickle之间的安全风险比较,但是关于eval方法和类型限制,更多的是配置文件存储问题 我想知道将凭

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

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

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

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

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

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


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

谢谢@alexis。加密是一种解决方案,尽管JSON不能存储不可打印的字符,这限制了加密算法的使用。我为我的序列化方法实现了一个decorator,它加密要序列化的数据:)我找不到任何关于加密json库中内置数据的文档。