Como ocultar dados confidenciais

O uso do depurador pode expor dados confidenciais dentro do aplicativo, como endereços de e-mail, números de conta etc. Esses dados confidenciais podem ser bloqueados pelo agente do depurador com um arquivo de configuração simples.

Exemplos

A configuração de exemplo a seguir oculta dados dentro de uma única classe do depurador:

blacklist:
- "com.sales.Ticket"

Também é possível ocultar pacotes especificando os respectivos nomes:

blacklist:
- "com.sales"

Em alguns casos, pode ser útil criar exceções às regras da blacklist. Isso pode ser feito com uma blacklist_exception:

blacklist:
- "com.sales"
blacklist_exception:
- "com.sales.testing"

Finalmente, é possível especificar um padrão inverso, onde as classes que não correspondem a um padrão entram na lista negra.

blacklist:
- "!com.sales"

Os dados ocultos são relatados pelo depurador como "bloqueados pelo administrador", conforme mostrado na seguinte captura de tela:

O Debugger relata texto oculto como "bloqueado pelo administrador"

Arquivo de configuração

A seguinte configuração pode ser usada como ponto de partida e fornece documentação interna:

# Stackdriver Debugger Blacklist Configuration File
#
# == Format ==
#
#   This configuration file accepts the following keywords:
#
#    - blacklist
#    - blacklist_exception
#
#   The debugger uses the following rules to determine if a variable's data
#   should be hidden, using the variable's type as the match criteria.
#
#   | Matches `blacklist` | Matches `blacklist_exception` | Data is |
#   |---------------------|-------------------------------|---------|
#   | no                  | no                            | shown   |
#   | no                  | yes                           | shown   |
#   | yes                 | no                            | hidden  |
#   | yes                 | yes                           | shown   |
#
#   Patterns listed under "blacklist" and "blacklist_exception" have the
#   following format:
#
#   [!]<type>
#
#   - `type` is a type prefix (such as a class or package name). Any
#      nested types will also match the pattern. For example, if you
#      specify a package name, the package and all of it's subtypes will
#      match. Note that glob patterns such as `*` can be used anywhere in
#      the type name.
#   -  By prefixing a pattern with an exclamation point, `!`, the pattern
#      is considered an "inverse match" which evaluates to true for any
#      type that does not match the provided pattern.
#   -  The debugger makes no attempt to verify that specified patterns
#      will actually match anything. If you have a misspelling in your
#      pattern, then there will be no reported errors but the pattern will
#      not work as intended.
#
# == Verification ==
#
#   A verification tool is available and can be downloaded with the
#   following command:
#
#   wget https://storage.googleapis.com/cloud-debugger/compute-java/debian-wheezy/debugger_blacklist_checker.py
#
#   This tool can be used to check the configuration file for syntax errors.
#   It can also be used to experiment with configuration files locally
#   without having to deploy a real application.
#
#   A basic usage example:
#
#       debugger_blacklist_checker.py debugger-blacklist.yaml
#
#   You can also use the tool to check if symbols will be blacklisted
#
#     echo com.java.Integer | \
#       debugger_blacklist_checker.py debugger-blacklist.yaml --check

# Uncomment The line below to add blacklists
#blacklist:
#  - "java.security"  # Example package

# Uncomment The line below to add blacklist exceptions
#blacklist_exception:
#  - "java.security.Timestamp"  # Example class

Onde colocar o arquivo de configuração

É preciso nomear o arquivo de configuração como debugger-blacklist.yaml, que pode ser colocado em qualquer lugar no caminho da classe. Um local aceitável é a raiz do arquivo .jar. As seções a seguir descrevem como fazer isso.

Como usar o comando jar

Para inserir ou atualizar um arquivo de configuração em um arquivo .jar, use o comando jar. Para adicionar o arquivo de configuração debugger-blacklist.yaml ao arquivo TicketTracker.jar, use o seguinte comando:

jar uvf TicketTracker.jar debugger-blacklist.yaml

Como usar o Ant

Para inserir o arquivo de configuração em um JAR usando o sistema de versão Ant, use a tarefa jar incorporada do Ant. Por exemplo, o seguinte destino distribute usa a tarefa jar para adicionar o arquivo de configuração debugger-blacklist.yaml ao arquivo TicketTracker.jar.

<target name="distribute" depends="compile">
  <jar destfile="${distributionDir}/TicketTracker.jar" >
    <fileset dir="${outputDir}"/>
    <fileset dir="${sourceDir}"/>
    <fileset file="debugger-blacklist.yaml" />
  </jar>
</target>

Como usar o Maven

Para inserir o arquivo de configuração em um pacote gerenciado pelo sistema de versão Maven, coloque o arquivo debugger-blacklist.yaml dentro do diretório src/main/resources, que talvez seja preciso criar. Crie o projeto e confirme que debugger-blacklist.yaml foi copiado para target/classes.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Stackdriver Debugger