2015-03-31 80 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资源,以及
    • 您可以撤销特定用户的凭据而不影响其他用户。
相关问题