Sgerror.php - erro ao informar URL



  • Pessoal.

    Quem tem instalado n pfsense 2.2.1 o squidguard3 está com o mesmo problema que eu?
    vejam na imagem anexa que ao mostrar a URL retorna junto o IP e mais o GET…...

    Alguém poderia confirmar se é um bug na variável do squidguard3 que retorna a URL do cliente %u?

    URL: http://www.facebook.com.br/192.168.1.5/--GET
    ![msg squidguard.JPG](/public/imported_attachments/1/msg squidguard.JPG)
    ![msg squidguard.JPG_thumb](/public/imported_attachments/1/msg squidguard.JPG_thumb)



  • @sosmicro:

    Pessoal.

    Quem tem instalado n pfsense 2.2.1 o squidguard3 está com o mesmo problema que eu?
    vejam na imagem anexa que ao mostrar a URL retorna junto o IP e mais o GET…...

    Alguém poderia confirmar se é um bug na variável do squidguard3 que retorna a URL do cliente %u?

    URL: http://www.facebook.com.br/192.168.1.5/--GET

    sosmicro,

    Estou com o mesmo problema. Porem eu "solucionei" através de PHP básico. Com STRLEN diminuindo o tamanho da string, por enquanto foi a melhor solução que achei.

    Segue o código:

    
    if ($cl['u']) {       
            $tamanhoip = strlen($cl['a']);
            $test = substr($cl['u'], 0, -($tamanhoip+6)); #O 6 é a quantidade de carácter depois do link acessado (-- GET)
            $str[] = "**{$test}**";
    }
    
    


  • obrigado verone!! aqui deu certo com esse código! obrigado! :)



  • @verone:

    Estou com o mesmo problema. Porem eu "solucionei" através de PHP básico. Com STRLEN diminuindo o tamanho da string, por enquanto foi a melhor solução que achei.

    Segue o código:

    
    if ($cl['u']) {       
            $tamanhoip = strlen($cl['a']);
            $test = substr($cl['u'], 0, -($tamanhoip+6)); #O 6 é a quantidade de carácter depois do link acessado (-- GET)
            $str[] = "**{$test}**";
    }
    
    

    Verone…
    Obrigado. funcionou perfeitamente.
    Mas e quando o proxy usa autenticação por usuário??? aí não há como saber a quantidade de caracteres usados no nome??
    Como seria o código neste caso?

    abs



  • @sosmicro:

    @verone:

    Estou com o mesmo problema. Porem eu "solucionei" através de PHP básico. Com STRLEN diminuindo o tamanho da string, por enquanto foi a melhor solução que achei.

    Segue o código:

    
    if ($cl['u']) {       
            $tamanhoip = strlen($cl['a']);
            $test = substr($cl['u'], 0, -($tamanhoip+6)); #O 6 é a quantidade de carácter depois do link acessado (-- GET)
            $str[] = "**{$test}**";
    }
    
    

    Verone…
    Obrigado. funcionou perfeitamente.
    Mas e quando o proxy usa autenticação por usuário??? aí não há como saber a quantidade de caracteres usados no nome??
    Como seria o código neste caso?

    abs

    sosmicro,

    Da para substituir o parâmetro que ele esta lendo para saber o tamanho.

    Em vez de ser strlen($cl['a']), seria no caso strlen($cl['i']) ou "n". Não sei ao certo porque não tenho uma infra aqui para testar certinho!

    Da uma olhada nas variáveis ai do SquidGuard:

    Incoming SquidGuard variables:

    #        a=client_address
    #        n=client_name
    #        i=client_user
    #        s=client_group
    #        t=target_group
    #        u=client_url

    O código ficaria assim então:

    
    if ($cl['u']) {       
            $tamanhoip = strlen($cl['i']);
            $test = substr($cl['u'], 0, -($tamanhoip+6)); #O 6 é a quantidade de carácter depois do IP acessado (-- GET)
            $str[] = "**{$test}**";
    }
    
    


  • Recomendo usar o preg_replace para substituir o conteúdo da variável que está caindo no campo errado.

    Nesse exemplo enviado, se o ip/usuário sempre vem antes do –GET (URL: http://www.facebook.com.br/192.168.1.5/--GET)

    #Incoming SquidGuard variables:
    #        a=client_address
    #        n=client_name
    #        i=client_user
    #        s=client_group
    #        t=target_group
    #        u=client_url

    No caso de client_address ou client_user, você pode usar :

    
    if ($cl['u']) {
    $str[] = "**".preg_replace("/({$cl['a']}|{$cl['i']}).--GET/","",$cl['u'])."**";
    }
    
    


  • Marcello, fiz um ajuste, pois estava mostrando a url em negrito e não estava aparacendo o texto "URL";

    if ($cl['u'])        { $str[] = " **URL:** ".preg_replace("/({$cl['a']}|{$cl['i']}).--GET/","",$cl['u'])."
    "; }
    

    Para quem precisar!

    Obrigado.



  • Onde eu altero isso, no sgerror.php? Em qual parte do código?



  • Se você ver no título do post diz que é no arquivo sgerror.php, e a parte do código, procure pela linha que tem a palavra "URL";



  • @Tomas:

    Se você ver no título do post diz que é no arquivo sgerror.php, e a parte do código, procure pela linha que tem a palavra "URL";

    Achei, valeu Tomas! ;)


Log in to reply