CLASSPATH Segurança

1

Neste postar alguém mencionado em um comentário que adiciona .: à variável de ambiente PATH é uma vulnerabilidade de segurança. A adição de .: à variável de ambiente CLASSPATH também é uma vulnerabilidade de segurança?

    
por SkippyNBS 19.05.2018 / 01:44

1 resposta

2

Sim, pode ser uma vulnerabilidade de segurança.

Colocar .: na frente de CLASSPATH significa que Java usa classes no diretório atual antes de se preocupar em procurar o restante dos CLASSPATH caminhos. Isso significa que .class arquivos no diretório atual ou em seus subdiretórios serão usados no lugar de qualquer classe ou interface. Por exemplo, se o arquivo ./java/lang/String.class existir, ele será usado em vez da classe String padrão.

Isso significa que, se você não estiver prestando atenção no que é o diretório atual ao executar um programa Java, o programa pode carregar classes maliciosas no lugar de qualquer classe.

Para economizar o esforço de verificar o diretório atual toda vez que você executar um programa Java, você não deve configurar o sistema para fazer isso por padrão.

Se você for usar classes no diretório atual ao executar um determinado programa Java, geralmente deverá ignorar a configuração CLASSPATH e usar o argumento -cp como java , como em:

java -cp ".:…" …

Isso evita completamente que outros programas Java sejam afetados por meio da variável de ambiente CLASSPATH . Você deve fazer isso apenas nos casos em que souber que os arquivos no diretório atual não são mal-intencionados.

    
por Chai T. Rex 19.05.2018 / 04:24