【发布时间】: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 则不然。