c# - 如何以编程方式禁用 C# 中的默认代理?
问题描述
在 .net 程序中,如果我们想通过将 IE/Edge 代理端口设置为自身来阻止 Web 调试代理捕获来自程序的请求,我们可以使用 App.config 将默认代理设置为 false。通过这种方式,我们可以在一定程度上保护内部的机制。但是,配置是裸露的,如果用户想要破解程序,用户可以轻松地更改它,并且具有 CS 的基本知识。那么,有没有办法让它在代码中,这样黑客就必须反编译才能破解?
解决方案
正如 Gabriel 提到的,不要将代理设置指定为硬编码。如果需要安全性,请找到一种方法以未知格式序列化您的数据。
那么,有没有办法让它在代码中,这样黑客就必须反编译才能破解
除非采取一些额外的步骤,否则您可以使用 ildasm.exe 轻松查看 DLL 的源代码。请看一下 - 如何保护我的 .NET 程序集不被反编译?.
如果您正在使用: 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 流量也可以在代理服务器的情况下轻松解密。
推荐阅读
- typescript - 将多个值之一分配给对象的属性
- opencv - 无法在 Opencv 中使用 VideoCapture 读取视频
- vb.net - 在 Linq Query VB.NET 中包含 Select Count(*)
- php - 从 SQL 中转义变量的引号
- android - 从存储库中提取文件时是否更新 IDE
- apache-kafka - 用于数据摄取的 Kafka 生产者配置
- c++ - 函数原型未初始化的局部变量
- opencv - 是否有可能相同的代码使用openCV返回不同的结果?
- android - android.os.NetworkOnMainThreadException json requete post
- c# - C#,使用计时器触发不同的事件。