2010-06-25 67 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

我認爲你的方法實際上是合理的,有一個主要警告:使用公鑰加密(又名非對稱加密)。

真的,只要你使用公鑰加密,做加密客戶端不是問題。公鑰加密的重點在於您可以與全世界共享您的公鑰,但只要您保證私鑰安全,您將是唯一可以解密的公鑰。

相關問題