2015-03-31 66 views
1

我正在開發一個C#WPF應用程序,其中用戶生成一個圖像,然後應用程序使用FTP連接將其上傳到網站主持。 FTP連接的憑證總是相同的,目前僅存儲在源代碼中。 我知道使用.NET Reflector,黑客可以很容易地獲得FTP連接的用戶名和密碼。 如何以及在哪裏可以存儲這些憑據以防止反編譯? 還是有更好的方式,而不是使用FTP上傳文件?如何在C#應用程序中安全地存儲FTP憑據?

+0

你可以將它們存儲在一個'config'文件,然後加密特定部分 – Izzy 2015-03-31 11:10:59

+0

請告訴我關於如何做更詳細的,我是初學者! – 2015-03-31 11:14:08

+0

看看[這個](http://stackoverflow.com/questions/27087778/how-to-read-encrypted-app-config-appsettings-in-win-console-application)問題它會給你一個開始點 – Izzy 2015-03-31 11:15:13

回答

0

您不能允許用戶訪問本身知道您不希望用戶知道的憑據的程序。用戶將總是能夠最終從程序中提取證書。您可能能夠慢下來,但通常的版權保護結石適用:

  • 如果信息足夠有價值的,你認爲你需要保護它,它是別人來繞過足夠有價值的保護。
  • 如果您投入足夠的精力進行保護以確保其他人不值得繞過您的保護,那麼您的投資本身超出了信息的價值(即您花費太多)。

根據您的用戶,他們正在使用的計算機的關係,你有一些選擇:

  • 給他們的證書,在安裝後會在程序配置輸入。只有當你信任他們的時候才這樣做。
  • 將FTP連接代碼實施爲Windows服務。將憑證提供給將安裝程序的其他人,該人員將依次安裝使用憑證配置的服務。用戶只能訪問與服務通信的客戶端程序,而客戶端程序又將代表用戶處理FTP通信。再次,只有在您信任安裝該程序的人員時才執行此操作,而不受信任的用戶在該計算機上沒有管理員權限。
  • 發出每個用戶的憑證。坦率地說,這是恕我直言,最好的辦法。優點包括:
    • 用戶不知道任何會影響到其他人的資源的安全性,
    • 你不必試圖隱藏從用戶的內容,
    • 可以監視訪問基於每個用戶的FTP資源,以及
    • 您可以撤銷特定用戶的憑據而不影響其他用戶。
相關問題