Загрузка...

[C#]не работает код с TitaniumWeb Proxy

Тема в разделе C# создана пользователем Finik8 17 апр 2023. 110 просмотров

Загрузка...
  1. Finik8
    Finik8 Автор темы 17 апр 2023 1 25 июн 2022
    Писал код для редиректа в браузере, но браузеры выдают такую ошибку, хотя я даже делал валидацию сертификата в коде вот код:
    Код

    public static ProxyServer proxyServer = new ProxyServer();
    public static void Start()
    {

    //proxyServer.CertificateManager.TrustRootCertificate(true);
    proxyServer.CertificateManager.CertificateEngine = CertificateEngine.BouncyCastle;
    var endpoint = new ExplicitProxyEndPoint(System.Net.IPAddress.Any, 8080, true);
    proxyServer.AddEndPoint(endpoint);
    proxyServer.ServerCertificateValidationCallback += OnCertificateValidation;
    proxyServer.BeforeRequest += OnRequest;
    //proxyServer.ClientCertificateSelectionCallback -= OnCertificateSelection;
    proxyServer.Start();
    Console.WriteLine("СЕРВЕР ЗАПУСТИЛИ!");

    }

    public static void Stop()
    {
    proxyServer.BeforeRequest -= OnRequest;
    proxyServer.Stop();
    Console.WriteLine("СТОПАНУЛ СЕРВАК!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    }

    private static async Task OnRequest(object sender, SessionEventArgs e)
    {

    Console.WriteLine("Зашли в редирект");
    Console.WriteLine(e.HttpClient.Request.RequestUri.Host.ToString());
    var host = e.HttpClient.Request.RequestUri.Host.ToLower();
    var host_ip = e.HttpClient.Request.RequestUriString.ToLower();
    Console.WriteLine(host);
    Console.WriteLine(host_ip);

    if (e.HttpClient.Request.RequestUri.Host.ToString().Contains("vk.com"))
    {
    Console.WriteLine("Редиректаем на ЮТТТТТТТТТТТТТТТТТТТТТТТТТТТТТ");
    e.Redirect("https://youtube.com/");
    Console.WriteLine("РЕДИРЕКТНУЛИИИИИИИИИИИИИИИИИИИИИИИИИИИИИИИИИИ");
    }

    }



    //static extern IntPtr GetForegroundWindow();

    private static Task OnCertificateValidation(object sender, CertificateValidationEventArgs e)
    {
    // игнорирование некоторых ошибок SSL-сертификата
    if (e.SslPolicyErrors == System.Net.Security.SslPolicyErrors.None)
    {
    e.IsValid = true;
    }

    if (e.SslPolicyErrors == System.Net.Security.SslPolicyErrors.RemoteCertificateChainErrors)
    {
    foreach (X509ChainStatus chainStatus in e.Chain.ChainStatus)
    {
    if (chainStatus.Status != X509ChainStatusFlags.RevocationStatusUnknown &&
    chainStatus.Status != X509ChainStatusFlags.NoError)
    {
    e.IsValid = false;
    }
    }

    e.IsValid = true;
    }

    //return false;
    return Task.CompletedTask;
    }
    [IMG]
     
  2. ChatGPT
    ChatGPT 17 апр 2023 2253 14 мар 2023
    Finik8, возможно, проблема заключается в том, что вы используете ******-сервер для перенаправления запросов на другой сайт. Некоторые браузеры могут блокировать такие запросы из соображений безопасности.

    Попробуйте использовать другой метод перенаправления, например, использование JavaScript для перенаправления на другой сайт.

    Также, убедитесь, что вы используете последнюю версию библиотеки TitaniumWeb Proxy и что вы правильно настроили ******-сервер.

    Надеюсь, это поможет вам решить проблему.
     
  3. vtlstolyarov
    vtlstolyarov 17 апр 2023 474 8 янв 2022
    Ну как бы сертификаты и задумывались как защита от таких как ты - чтобы браузер поверил что это vk.com у тебя должен быть доверенный сертификат на этот домен.
     
    17 апр 2023 Изменено
    1. Finik8 Автор темы
      vtlstolyarov, как можно получить доверенный сертификат? каждой системе же выделяется сертификат, верно, может можно его как-то взять и использовать в проге для запросов?
    2. Finik8 Автор темы
      vtlstolyarov, насколько я понимаю, надо как-то добавить сертификат, сгенерированный TitaniumWeb Proxy, в доверенные сертификаты, но я не знаю, как сделать это программно и надо ли это делать. До этого, когда я первый раз запускал программу, у меня вылезло уведомление о новом сертификаты, и можно ли ему доверять. Но теперь, когда я запускаю прогу, ничего такого не вылазит
    3. vtlstolyarov
      Finik8, да, надо добавить сертификат ****** сервера в доверенные - это надо сделать только один раз, потому уже он находится в списке доверенных
Top