【问题标题】:Hide FTP credentials from code .NET C#从代码 .NET C# 中隐藏 FTP 凭据
【发布时间】:2018-04-21 09:22:40
【问题描述】:

我有一个应用程序需要将文件上传到我的 FTP 服务器,但我注意到任何人都可以反编译该应用程序并获取 FTP 的用户名和密码。 代码是这样的:

                            using (WebClient client = new WebClient())
                            {
                                client.Credentials = new NetworkCredential("ftpuser", "ftppassword");
                                client.UploadFile("ftp://ip/" + Computer + "_" + ExecTime + ".txt", "STOR", Application.StartupPath + @"\Stats.txt");
                            }

我想对任何人隐藏这些凭据。这怎么可能?

【问题讨论】:

  • 简短的回答是你不能。您不能在客户端计算机上拥有机密。什么都看得见。您只能通过混淆它来使其难以找到。但这在您使用 FTP 时无济于事,因为它以明文形式发送密码并且非常容易拦截。
  • 最好的选择可能是为每个用户提供自己的用户名和密码。
  • 建议:不要使用FTP,使用HTTP文件上传。让 HTTP 服务器执行您想要的任何身份验证/检查,包括检查文件是否有效类型/大小检查病毒。为 HTTP 上传添加逻辑很容易,而 FTP 则不然。

标签: c# .net windows forms


【解决方案1】:

在没有凭据的情况下实施公共 FTP 并且仅对您想要的资源进行非常有限的访问可能会更明智。混淆是行不通的,因为无论如何都会有人去混淆它。由于您想从客户端上传文件,您可能需要放置某种控制器,这样上传机制就不会被滥用。 或者...只需为每个用户提供一个访问受限且问题已排序的帐户:)。 我认为这更像是一个设计问题:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-13
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多