Evitar que um servidor Apache 2 registre dados confidenciais

3

O Apache 2, por padrão, registra todo o URI da solicitação, incluindo a string de consulta de cada solicitação.

O que é uma maneira direta de impedir que um servidor da web Apache 2 registre dados confidenciais, por exemplo, senhas, números de cartão de crédito etc., mas ainda registre o restante da solicitação?

Eu gostaria de registrar todas as tentativas de login, incluindo o nome de usuário tentado como o Apache faz por padrão, e impedir que o Apache registre a senha diretamente.

Examinei a documentação do Apache 2 e parece não haver uma maneira fácil de fazer isso, além de impedir completamente o registro em log dessas solicitações (usando SetEnvIf).

Como posso conseguir isso?

    
por jstr 11.01.2011 / 05:20

3 respostas

4

Apache 2 by default logs the entire request URI including query string of every request.

What is a straight forward way to prevent an Apache 2 web server from logging sensitive data, for example passwords, credit card numbers, etc., but still log the rest of the request?

Estou lendo certo, que você está enviando informações confidenciais no URI como QueryString? Eu sugeriria alterar o aplicativo para que, em primeiro lugar, o faça.

Então, não haveria nenhum requisito para alterar o apache, já que ele não faz isso por padrão.

    
por 11.01.2011 / 05:28
9

Você pode mascarar as senhas antes que elas acabem no access.log combinando uma diretiva CustomLog com um pouco de sed magic (conforme instruído em link :

Isso substituiria todas as ocorrências de password=secret com password=[FILTERED] em /your/path/access.log :

CustomLog "|/bin/sed -E s/'param=[^& \t\n]*'/'param=\[FILTERED\]'/g >> /your/path/access.log" combined

Dito isto, seria melhor evitar colocar dados confidenciais nas sequências de consulta, se possível.

    
por 16.04.2013 / 09:01
3

Você leu a diferença entre GET e POST e reescreveu seus aplicativos para que parassem colocando senhas e informações nos parâmetros GET.

    
por 11.01.2011 / 05:28