Загрузка...

Статья. Обход CloudFlare.

Тема в разделе C# создана пользователем Kio_inactive467386 20 мар 2019. 1390 просмотров

  1. Kio_inactive467386
    Kio_inactive467386 Автор темы 20 мар 2019 Заблокирован(а) 77 22 июн 2018
    Данная статья подойдет для тех людей, которые делают приложения и не могут обойти CloudFlare на сайтах.
    Для реализации данной задачи понадобится: Leaf-XNet(Клац) - Библиотека подобная XNet, но со своими фишками.
    Чтобы обойти 5-ти секундную защиту нужно обработать JavaScript на сайте и получить куки, которые работают некоторое время для определенного IP-адреса.
    Минусы: данный метод работает только при включенной Re-Captcha.

    Итак приступим к реализации:
    Идем в Nuget и скачиваем пакет Leaf-XNet(Клац).
    Дальше используем:

    Используем пакет:
    Код

    using Leaf.xNet;
    using Leaf.xNet.Services.Cloudflare;

    Полный код:
    Код



    Создаем и инициализируем новую переменную(Словарь) для хранения куков.
    Dictionary<string, string> Cookies = new Dictionary<string, string>();

    //Инициализируем новый экземпляр класса HttpRequest в переменную Request.
    using (var Request = new HttpRequest())
    {
    try
    {
    //С помощью переменной Request выполняем переход на нужный сайт.
    var ResponseCookies = Request.GetThroughCloudflare("Адрес сайта").Cookies;

    //Если все без ошибочно, то CloudFlare обработан и теперь вытаскиваем куки.
    foreach (Cookie _Cookie in ResponseCookies.GetCookies("Адрес сайта"))
    {
    MessageBox.Show(_Cookie.Name, _Cookie.Value);
    Cookies.Add(_Cookie.Name, _Cookie.Value);
    }

    //Дальше перекидываете куки из словоря(Cookies) куда вам угодно, в обычный XNet или же HttpWebRequest.
    }
    catch
    {
    //Действия при ошибке.
    }
    finally
    {
    //Действия при окончание блока try.
    Request?.Dispose();
    }
    }

    Итак, что здесь происходит, сначала используем скачанные пакеты Leaf-XNet.
    И уже инициализируем наш словарь(Cookies) для хранения куков и дальнейшего использования в XNet/Leaf-XNet/HttpWebRequest.
    Дальше мы инициализируем новый экземпляр класса HttpRequest в переменную Request, а переменная ResponseCookies получает результат(В нашем случае куки) после выполнения работы переменной Request.
    После из ответа(ResponseCookies) вытаскиваем куки в словарь(Cookies).
    А после из словаря(Cookies) куда вам угодно.

    В следующей статье выложу свой класс для более простой реализации без использования Leaf-XNet, а также без зависимости от Re-Captcha.
     
    20 мар 2019 Изменено
Загрузка...
Top