2010-06-25 123 views
2

我真的只是寻找一些指导。这里是场景:我应该如何在MySQL数据库中存储ftp登录凭据?

用户可以通过受密码保护的控制面板添加FTP帐户。我需要保存这些凭据,以便FTP帐户可以自动连接。这很简单,但我想采取最安全的方法。我正在考虑加密密码客户端,然后将加密密码发送到服务器进行存储。然后,在FTP连接建立之前,加密的值将被提取并解密客户端。

我知道这不是太安全,但这是我能想到的。你们有没有其他明智的想法可以让这个更安全?谢谢!

回答

0

安全地存储凭证很容易 - 加密它的服务器端,你很好。

如果您不能使用SSL,安全地传输数据将更加困难。

最简单的方法是在传输之前用它们的散列密码加密数据(从任一端);这样加密密钥不会与数据一起传输或作为客户端代码的一部分存储。

这并不理想,理想情况下需要SSL,但它比发送纯文本或使用存储在(或生成)代码中的密钥进行加密要好。

+0

加密服务器端的问题在于,如果我要使用保存的凭证连接到FTP服务器,我以后需要明文凭证。不知道如何解决这个问题。 另外,当连接到ftp时,我正在使用ftp_ssl_connect连接到用户FTP。我对安全性知之甚少,但我认为这比ftp_connect好一点。 – 2010-06-25 20:11:27

+0

@Eric:如果FTP服务器支持SSL-FTP,则只能使用ftp_ssl_connect。如果用户能够选择一个任意的FTP服务器,那当然不会总是如此。 – 2010-06-26 00:23:19

+0

我明白了。那么ssh2_sftp呢?如果我能在我的服务器上工作,通过ssh2_connect连接会更好吗?另外,由于我无法在我的服务器上加密密码,然后在以后连接到用户的FTP,因为我必须解密密码,所以我仍然卡住了。有什么想法吗? – 2010-06-28 18:38:27

0

我认为你的方法实际上是合理的,有一个主要警告:使用公钥加密(又名非对称加密)。

真的,只要你使用公钥加密,做加密客户端不是问题。公钥加密的重点在于您可以与全世界共享您的公钥,但只要您保证私钥安全,您将是唯一可以解密的公钥。

相关问题