3

保护 SQL 查询的一些有效且安全的方法是什么?

简而言之,我想确保程序员看不到应用程序用来执行查询的密码。想到了 RSA 或 PGP 之类的东西,但不知道如何实现更改密码而不在应用程序中的某个地方进行编码。

我们的环境是典型的 Linux/MySQL。

4

2 回答 2

1

这可能更多是流程问题,而不是编码问题。

在软件开发过程中,您需要将实施过程和推出过程严格分开。包含密码的配置文件必须在推出期间填写真实密码,而不是之前。程序员可以使用开发环境的密码,一旦应用程序完成,推出团队就会更改这些密码。这样,真正的密码永远不会透露给编写应用程序的人。

如果您无法确保程序员无法访问实时系统,则需要对配置文件进行加密。做到这一点的最佳方法取决于编程语言。我目前正在开发一个 Java 应用程序,该应用程序使用ESAPI 项目中的适当函数加密 .properties 文件,我可以推荐它。如果您使用其他语言,则必须找到等效机制。

每当您想更改密码时,管理员都会在将文件复制到服务器之前生成一个新文件并对其进行加密。

如果您想要最大的安全性并且不想存储用于解密系统配置的密钥,管理员可以在系统重新启动时提供它。但这可能会让事情走得太远,具体取决于您的需要。

于 2011-04-07T21:04:52.810 回答
0

如果程序员无权访问包含登录凭据的配置文件,并且无法通过调试或 JMX 接口访问它们,那么这应该可以工作。当然,这会引入其他问题,但这可能会满足您的要求。(我不是合格的安全评估员 - 因此请与您的评估员确认 PCI 合规性。)

于 2011-03-24T19:46:11.463 回答