Почему TLS важен в незащищенном http? - PullRequest
0 голосов
/ 23 апреля 2019

Я использую WebClient для получения данных с веб-ресурса, таким образом:

var wc = new System.Net.WebClient();
var stream = wc.OpenRead("http://...");
// etc..

Раньше он работал до недавнего времени, когда сервер принудительно закрывал соединение.

На основена этом ответе StackOverflow я добавил параметр ServicePointManager таким образом:

var wc = new System.Net.WebClient();
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var stream = wc.OpenRead("http://...");
// etc..

… и он снова работает, как и раньше.

Я получаю этот TLSимеет отношение к HTTPS, и действие этого параметра заключается в том, что TLS1.2 включается в квитирование, и что сайт узла должен быть недавно обновлен, чтобы отклонить более старый уязвимый протокол, но почему это необходимо для обычногонезащищенный HTTP ?

1 Ответ

1 голос
/ 23 апреля 2019

AllowAutoRedirect по умолчанию установлен в true в экземплярах WebClient.Следовательно, запрос автоматически следует за ответами перенаправления с вашего сервера.

Просто установите для AllowAutoRedirect значение false, и вы не будете следовать никаким перенаправлениям, поэтому вам не придется иметь дело с рукопожатиями SSL / TLS.

Конечно, если ваш сервер не хочет обслуживать ваш запрос по HTTP, вы не получите искомое содержимое.В любом случае, установив для AllowAutoRedirect значение false, вы сможете подтвердить, что поведение, с которым вы сталкиваетесь, связано с перенаправлением.

...