Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.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
Sql 保护纯文本文件中敏感数据的最佳做法?_Sql_C_Linux_Daemon_Centos - Fatal编程技术网

Sql 保护纯文本文件中敏感数据的最佳做法?

Sql 保护纯文本文件中敏感数据的最佳做法?,sql,c,linux,daemon,centos,Sql,C,Linux,Daemon,Centos,目前,我正在开发一个C linux守护进程,它接受用户输入的SQL连接字符串,然后将信息存储到本地conf文件(客户端)中。守护程序的目的是以设置的间隔向SQL数据库提交数据,因为每次加载守护程序时,它都会在本地conf中查找SQL连接字符串。此外,通过使用命令行参数-c,用户可以在信息发生更改时重新配置SQL连接字符串。是否有人愿意共享一种保护此conf文件的方法,以使其不是纯文本。请记住,我仍然需要能够访问和读取conf文件,因为还有其他conf设置。提前谢谢各位 编辑:我最终计划使用SSL

目前,我正在开发一个C linux守护进程,它接受用户输入的SQL连接字符串,然后将信息存储到本地conf文件(客户端)中。守护程序的目的是以设置的间隔向SQL数据库提交数据,因为每次加载守护程序时,它都会在本地conf中查找SQL连接字符串。此外,通过使用命令行参数-c,用户可以在信息发生更改时重新配置SQL连接字符串。是否有人愿意共享一种保护此conf文件的方法,以使其不是纯文本。请记住,我仍然需要能够访问和读取conf文件,因为还有其他conf设置。提前谢谢各位

编辑:我最终计划使用SSL在客户端和SQL server之间提交数据

保护文件的(唯一?)方法是更改其权限,使其仅对运行守护程序的用户可读

例如,如果您以用户“foo”和组“foo”的身份运行守护程序,您应该:

chown foo.foo my-conf-file
chmod 600 my-conf-file
(甚至可以将其修改为
400
,以防止意外修改,但我想在这种情况下,您将失去
-c
选项功能)

注意:还要记住,在命令行上传递连接字符串是非常危险的,因为它们将从进程列表中可见

您也可以使用一些GPG东西来加密文件,但我不认为这有什么意义,因为您必须保护用于解密文件的密钥,并且您会遇到与以前完全相同的问题。

保护文件的(唯一?)方法是更改其权限,使其仅对运行守护程序的用户可读

例如,如果您以用户“foo”和组“foo”的身份运行守护程序,您应该:

chown foo.foo my-conf-file
chmod 600 my-conf-file
(甚至可以将其修改为
400
,以防止意外修改,但我想在这种情况下,您将失去
-c
选项功能)

注意:还要记住,在命令行上传递连接字符串是非常危险的,因为它们将从进程列表中可见


你也可以使用一些GPG的东西来加密文件,但我不认为这有什么意义,因为你必须保护你用来解密文件的密钥,你会遇到与以前完全相同的问题。

如果你没有地方保守秘密,加密技术将帮不了你。如果您的守护进程能够在不使用任何机密的情况下解码密码,那么任何人都可以这样做。因此,您必须依靠系统保护,例如文件访问模式标志来保存密钥。

如果您没有地方保存机密,加密将无法帮助您。如果您的守护进程能够在不使用任何机密的情况下解码密码,那么任何人都可以这样做。因此,您必须依靠系统保护,例如文件访问模式标志来保留密钥。

我确实会屏蔽输入,以获取密码等信息,但您认为这是危险的。我想我真正想做的是保护纯文本文件。在这种情况下,我甚至不认为用户应该有权访问conf文件,只有守护进程本身应该有权访问。当然,“运行守护进程的用户”应该是仅用于此目的的系统用户,而不是登录到系统的普通用户。实现这一点的最佳方法是以root用户身份运行守护程序,然后
setuid()
访问另一个权限较低的系统用户的uid,该用户是唯一可以访问配置文件的用户。我确实会屏蔽输入,以获取密码等信息,但您必须指出这是危险的。我想我真正想做的是保护纯文本文件。在这种情况下,我甚至不认为用户应该有权访问conf文件,只有守护进程本身应该有权访问。当然,“运行守护进程的用户”应该是仅用于此目的的系统用户,而不是登录到系统的普通用户。实现这一点的最佳方法是以root用户身份运行守护程序,然后
setuid()
到另一个权限较低的系统用户的uid,该用户是唯一可以访问配置文件的用户。非SQL数据库(可能类似于ndbm)如何?非SQL数据库(可能类似于ndbm)如何?