【发布时间】:2011-07-22 08:30:37
【问题描述】:
有哪些安全有效的 SQL 查询保护方法?
简而言之,我想确保程序员不会看到应用程序用于执行查询的密码。想到了 RSA 或 PGP 之类的东西,但不知道如何实现更改密码而不在应用程序某处进行编码。
我们的环境是典型的 Linux/MySQL。
【问题讨论】:
标签: security database-connection pci-dss
有哪些安全有效的 SQL 查询保护方法?
简而言之,我想确保程序员不会看到应用程序用于执行查询的密码。想到了 RSA 或 PGP 之类的东西,但不知道如何实现更改密码而不在应用程序某处进行编码。
我们的环境是典型的 Linux/MySQL。
【问题讨论】:
标签: security database-connection pci-dss
这可能更多是流程问题,而不是编码问题。
在软件开发过程中,您需要将实施过程和推出过程严格分开。包含密码的配置文件必须在推出期间填写真实密码,而不是之前。程序员可以使用开发环境的密码,一旦应用程序完成,推出团队就会更改这些密码。这样,真正的密码永远不会透露给编写应用程序的人。
如果您无法确保程序员无法访问实时系统,则需要对配置文件进行加密。执行此操作的最佳方法取决于编程语言。我目前正在开发一个 Java 应用程序,该应用程序使用来自 ESAPI project 的适当函数加密 .properties 文件,我可以推荐它。如果您使用其他语言,则必须找到等效机制。
每当您想更改密码时,管理员都会在将文件复制到服务器之前生成一个新文件并对其进行加密。
如果您想要最大程度的安全性并且不想存储用于解密系统配置的密钥,管理员可以在系统重新启动时提供它。但这可能会走得太远,具体取决于您的需求。
【讨论】:
如果程序员无权访问包含登录凭据的配置文件并且无法通过调试或 JMX 接口访问它们,那么这应该可以工作。当然,这会引入其他问题,但这可能会满足您的要求。 (我不是合格的安全评估员 - 因此请与您联系以确保符合 PCI 规定。)
【讨论】: