C# 如何在winforms应用程序中隐藏我的服务器IP变量
在C#winforms应用程序中隐藏/保护包含我的服务器IP地址的字符串的最佳方法是什么 问题是,为了激活我创建的应用程序,用户应该填写一些包含用户名和密码文本框的表单,然后连接到我的服务器以验证他输入的详细信息 现在,我想要的是隐藏/保护或可能以某种方式加密包含服务器地址的字符串,这样就没有人可以实际更改/访问它,或者至少使其很难被逆转。。可能吗C# 如何在winforms应用程序中隐藏我的服务器IP变量,c#,string,winforms,obfuscation,C#,String,Winforms,Obfuscation,在C#winforms应用程序中隐藏/保护包含我的服务器IP地址的字符串的最佳方法是什么 问题是,为了激活我创建的应用程序,用户应该填写一些包含用户名和密码文本框的表单,然后连接到我的服务器以验证他输入的详细信息 现在,我想要的是隐藏/保护或可能以某种方式加密包含服务器地址的字符串,这样就没有人可以实际更改/访问它,或者至少使其很难被逆转。。可能吗 我不确定我是否清楚这个问题,但我希望你们都明白了。这是一个可笑的方法。从一开始,隐蔽性带来的安全性非常弱,并且您连接的IP地址不仅显示在源代码中,还
我不确定我是否清楚这个问题,但我希望你们都明白了。这是一个可笑的方法。从一开始,隐蔽性带来的安全性非常弱,并且您连接的IP地址不仅显示在源代码中,还显示在传出数据包、防火墙日志、连接表、数据包捕获等中 隐藏连接的对等IP地址是一个很大的兴趣领域,并导致了以下技术。在源代码中隐藏地址是您最不担心的事情。当您使用洋葱路由时,目标IP地址甚至不会出现在您的源代码中,只会出现一些仅对下一跳洋葱路由器有意义的cookie,因此混淆源代码就不成问题了
编辑:根据评论,现在很清楚我们想要的是验证发送响应的远程计算机的身份。有很多方法可以做到这一点,但保护源代码并不是其中之一。IP地址很容易被欺骗。可以覆盖存储在应用程序二进制文件中的公钥,也可以完全绕过身份验证代码 实际上,您需要程序中的一些重要功能不包含在安装程序中,而是作为身份验证过程的一部分下载(如果身份验证失败,服务器可以选择不发送)。响应仍然有可能被窃取,并用于在没有身份验证的情况下激活其他安装,但这只能由至少能够进行一次有效身份验证的人来完成 如果您对此感到担忧,那么您需要使用隐写术在响应中对客户的身份进行编码。然后,当非法副本开始出现时,您就知道是哪个有效用户制作了第一份副本
或者将软件的专有部分保留在服务器上,永远不要下载到客户端。这是最安全的方法。这是一种可笑的方法。从一开始,隐蔽性带来的安全性非常弱,并且您连接的IP地址不仅显示在源代码中,还显示在传出数据包、防火墙日志、连接表、数据包捕获等中 隐藏连接的对等IP地址是一个很大的兴趣领域,并导致了以下技术。在源代码中隐藏地址是您最不担心的事情。当您使用洋葱路由时,目标IP地址甚至不会出现在您的源代码中,只会出现一些仅对下一跳洋葱路由器有意义的cookie,因此混淆源代码就不成问题了
编辑:根据评论,现在很清楚我们想要的是验证发送响应的远程计算机的身份。有很多方法可以做到这一点,但保护源代码并不是其中之一。IP地址很容易被欺骗。可以覆盖存储在应用程序二进制文件中的公钥,也可以完全绕过身份验证代码 实际上,您需要程序中的一些重要功能不包含在安装程序中,而是作为身份验证过程的一部分下载(如果身份验证失败,服务器可以选择不发送)。响应仍然有可能被窃取,并用于在没有身份验证的情况下激活其他安装,但这只能由至少能够进行一次有效身份验证的人来完成 如果您对此感到担忧,那么您需要使用隐写术在响应中对客户的身份进行编码。然后,当非法副本开始出现时,您就知道是哪个有效用户制作了第一份副本
或者将软件的专有部分保留在服务器上,永远不要下载到客户端。这是最安全的方法。为什么需要隐藏服务器的IP地址 据推测,您的应用程序将与服务器联系,并在激活之前等待一些响应。在这种情况下,我不认为隐藏IP地址是解决问题的方法。不仅仅是因为IP地址可能不稳定。相反,您应该简单地在客户端和服务器之间使用相互身份验证。我建议: