以下是我的应用程序的示例代码,它将一些数据上传到服务器并读取响应。 如何判断连接是否安全?即使链接是否加密(无论https前缀)
,此代码仍会运行using (WebClient client = new WebClient())
{
byte[] response = client.UploadValues("https://mytestserver.com", new NameValueCollection() { { "Abc", "def" } });
result = System.Text.Encoding.UTF8.GetString(response);
}
我的意思是,有人可能会在端口443(https)上运行网络服务器,但保持连接不受保护,例如" classic" 80号港口。
我已经注册了ServicePointManager.ServerCertificateValidationCallback,我检查了证书签名,但是如果根本没有证书,它显然没有被执行。
MITM攻击的完美情况。
答案 0 :(得分:0)
如果您没有证书并且想要访问HTTPS-URL,则只需在您的Callback方法中返回true。这意味着证书已经过验证。
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };