C# 如何在web托管中保护文件不被覆盖

C# 如何在web托管中保护文件不被覆盖,c#,.net,winforms,ftp,decompiling,C#,.net,Winforms,Ftp,Decompiling,我已经在我的web托管服务器中创建了一个目录 我已经创建了一个文本文件。它用于激活我的应用程序 但是我已经在我的应用程序中设置了用户名和密码。我想测试反编译器对我的应用程序是否真的有效,它是否有效。当我反编译我的应用程序时,它会显示我的用户名和密码。这对我不好。如果人们知道我的用户名和密码,他们可以覆盖日期文件并增加订阅的数据 我不想让别人通过filezilla打开文件夹时我的文件被覆盖。我只想给我的文件提供下载权限,而不是覆盖权限 如果有人能帮助我,我将不胜感激 提前感谢。然后,您应该设置FT

我已经在我的web托管服务器中创建了一个目录

我已经创建了一个文本文件。它用于激活我的应用程序

但是我已经在我的应用程序中设置了用户名和密码。我想测试反编译器对我的应用程序是否真的有效,它是否有效。当我反编译我的应用程序时,它会显示我的用户名和密码。这对我不好。如果人们知道我的用户名和密码,他们可以覆盖日期文件并增加订阅的数据

我不想让别人通过filezilla打开文件夹时我的文件被覆盖。我只想给我的文件提供下载权限,而不是覆盖权限

如果有人能帮助我,我将不胜感激


提前感谢。

然后,您应该设置FTP服务器,以便应用程序登录的用户没有写入权限


如果您使用的是普通FTP,其他人是否能够反编译您的应用程序并不重要(他们也会)。他们可以窥探网络通信并查看用户名和密码。

然后,您应该设置FTP服务器,以便应用程序登录的用户没有写入权限


如果您使用的是普通FTP,其他人是否能够反编译您的应用程序并不重要(他们也会)。他们可以窥探他们的网络通信并查看用户名和密码。

首先,您需要正确设置安全性-即使用最不需要的权限集(您的FTP目录不应允许写入组/世界,根据您的描述,它目前正在执行此操作!)

至于用户名/密码反编译问题-公钥加密可以在这里提供帮助:

  • 将公钥嵌入到你的应用程序中(或只是将其与你的应用程序公开分发)
  • 此公钥对于所有客户都可以相同
  • 如果您需要为客户提供一些特殊选项,您可以创建一个XML/文本文件
  • 该文件以您定义的格式包含您想要的任何内容
  • 该文件可以包含任何明文形式的内容
  • 您对该文件进行签名(使用从未分发的私钥创建签名)
  • 您的应用程序可以通过验证签名来验证文件的真实性(为此,它需要公钥)
  • 如果您的应用程序通过网络发送用户名/密码,请选择阻止窥探的协议(例如服务器端SSL,与客户端证书结合使用时更好)
  • FTP可以与SSL(称为FTP)一起使用,也可以使用不同的东西,如SFTP(SSH标准的一部分)
您的客户无法基于公钥创建有效签名。。。如果你的硬件有一些你的应用程序可以读取的不可更改的序列号,那么我也会将这个硬件序列号放入XML/文本文件中。。。这样,一个XML/文本文件就不能被不同的客户复制/使用

您甚至可以通过提供特定于客户的公钥(并将相应的私钥保持为私钥)来扩展此方案。。。这些可以与应用程序一起公开分发,而无需隐藏,因为任何人都知道公钥根本不存在安全风险

因此,如果有人曾经覆盖/更改过您的文件,那么签名将是错误的,从而使您免受这种威胁


理想情况下,您需要对应用程序/程序集进行签名(为此,您需要一份证书),以提供一些安全性,防止篡改您的应用程序/程序集,然后您就拥有了真正可靠的应用程序/程序集,而无需任何“技巧”…

首先,您需要正确设置安全性,即使用最不需要的权限集(您的FTP目录不应允许对组/世界进行写操作,根据您的描述,该目录当前正在执行此操作!)

至于用户名/密码反编译问题-公钥加密可以在这里提供帮助:

  • 将公钥嵌入到你的应用程序中(或只是将其与你的应用程序公开分发)
  • 此公钥对于所有客户都可以相同
  • 如果您需要为客户提供一些特殊选项,您可以创建一个XML/文本文件
  • 该文件以您定义的格式包含您想要的任何内容
  • 该文件可以包含任何明文形式的内容
  • 您对该文件进行签名(使用从未分发的私钥创建签名)
  • 您的应用程序可以通过验证签名来验证文件的真实性(为此,它需要公钥)
  • 如果您的应用程序通过网络发送用户名/密码,请选择阻止窥探的协议(例如服务器端SSL,与客户端证书结合使用时更好)
  • FTP可以与SSL(称为FTP)一起使用,也可以使用不同的东西,如SFTP(SSH标准的一部分)
您的客户无法基于公钥创建有效的签名…如果您的硬件具有一些您的应用程序可以读取的不可更改的序列号,那么我也会将此硬件序列号放入XML/text文件中…这样,一个XML/text文件就不能被不同的客户复制/使用

您甚至可以通过提供特定于客户的公钥(并将相应的私钥保持为私钥)来扩展此方案。这些密钥可以与应用程序一起公开分发,而无需隐藏,因为任何人都知道公钥根本不存在安全风险

因此,如果有人曾经覆盖/更改过您的文件,那么签名将是错误的,从而使您免受这种威胁


理想情况下,你需要签署你的应用程序/程序集(为此,你需要一份证书),它可以提供一些安全性,防止篡改你的应用程序/程序集,那么你就有了真正可靠的东西,而不需要任何“把戏”…

我没有授予写入权限,但我可以通过filezilla覆盖它。如果您可以通过filezilla写入,则您具有写入权限。我检查了它,但没有写入权限