我有一个Web应用程序,使用已知的用户名和密码组合登录到外部服务器。有多种用于不同服务的用户名/密码组合。现在,它们实际上是“硬编码”到网站代码中的,但是,我想将此信息从代码库中移出,以提高安全性。
我最初的想法是将这些数据存储在用于支持网站的数据库中。我想以一种不容易“破解”的方式存储它(即,我不会将其存储为纯文本或MD5哈希值)。我是否应该采用与存储网站用户密码相同的格式,在其中我使用随机数生成器为每个密码创建SALT,然后将密码存储为密码和SALT的哈希组合,还是过大? / p>
答案 0 :(得分:0)
通常,将密码存储在应用程序代码中总是一个坏主意。将其移出代码具有许多优点,包括安全性。
现在必须将其存储在数据库或配置文件中,这取决于您的应用程序。
为了全面安全起见,请不要以可检索的形式存储密码。但是要像您这种情况那样登录到外部服务器,您需要获取实际的纯文本密码,因此一种方式哈希对您不起作用。
在我们的产品中,我们使用2 Way SSL Certificates
处理这种情况。这是非常安全的,不需要存储密码。
但是,如果您确实需要存储密码,那么我建议您使用configuration file
并让您的应用程序读取它。您可以对存储在configuration files
中的密码进行加密(对存储在configuration file
中的密码进行加密将再次使您回到有关如何保护密钥的相同问题)。应该限制对configuration file
的访问(在Unix中,600 File Permission
)。
或者,如果您的Web应用程序是Java,则可以考虑使用JNDI。
答案 1 :(得分:0)