如何以编程方式禁用C#中的默认代理?

时间:2018-12-15 01:27:56

标签: c# .net networking proxy

在.net程序中,如果要停止Web调试代理通过将IE / Edge代理端口设置为自身来捕获来自程序的请求,则可以使用App.config将默认代理设置为false。通过这种方式,我们可以在某种程度上保护内部机制。 但是,如果用户想要破解程序具有CS的基本知识,则该配置是裸露的,用户可以轻松更改它。那么,是否有必要将其放入代码内部,以便黑客必须将其反编译以进行黑客攻击?

2 个答案:

答案 0 :(得分:0)

不要。出于几个原因(至少):

  • 在某些网络中,有时到达Internet的唯一方法是通过代理。如果您对程序进行硬编码以使其不使用代理,则将其破坏。
  • 无法阻止人们看到路况。我可以使用Wireshark查看代理可以看到的所有内容。

相反,只需加密您的流量即可(如果您使用的是Web服务,请使用HTTPS)。然后,即使它通过代理或网络嗅探器,也仍然无法读取。

答案 1 :(得分:0)

正如加布里埃尔(Gabriel)所述,只需不要将代理设置指定为硬编码即可。 如果需要安全性,请找到一种以未知格式序列化数据的方法。

  

因此,无论如何都可以在代码内部添加它,以便黑客必须进行反编译以进行黑客攻击

除非使用某些其他步骤,否则可以使用ildasm.exe轻松查看DLL的源。请看一看- How can I protect my .NET assemblies from decompilation?

如果使用的是:WebRequest类请查看WebRequest.DefaultWebProxy属性,将其设置为null不会使用任何代理。 https://docs.microsoft.com/en-us/dotnet/api/system.net.webrequest.defaultwebproxy?view=netframework-4.7.2#System_Net_WebRequest_DefaultWebProxy

如果计划使用HttpClient类-您可能需要传递自定义处理程序,WebRequestHandler应该通过将UseProxy设置为false来完成这项工作。https://docs.microsoft.com/en-us/dotnet/api/system.net.http.webrequesthandler?view=netframework-4.7.2

更新: 添加注释,使其无法发表评论:在代理服务器的情况下,即使HTTPS流量也可以轻松解密。