Masquer les données sensibles

L'utilisation du débogueur peut exposer des données sensibles dans l'application, telles que des adresses de messagerie, des numéros de compte, etc. Ces données sensibles peuvent être bloquées par l'agent de débogage à l'aide d'un simple fichier de configuration.

Exemples

L'exemple de configuration suivant masque les données dans une seule classe du débogueur :

blacklist:
- "com.sales.Ticket"

Il est également possible de masquer des packages en spécifiant leur nom :

blacklist:
- "com.sales"

Dans certains cas, il peut être utile de créer des exceptions aux règles de blacklist. Vous pouvez effectuer cette opération à l'aide de la commande blacklist_exception :

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

Enfin, il est possible de définir un schéma inverse, dans lequel les classes qui ne correspondent pas à un certain schéma sont inscrites sur la liste noire.

blacklist:
- "!com.sales"

Le débogueur signale les données masquées à l'aide de la mention "blocker by admin" (bloqué par l'administrateur), comme vous le montre la capture d'écran ci-dessous :

Le débogueur signale le texte masqué comme

Fichier de configuration

La configuration suivante peut être utilisée comme point de départ et fournit une documentation intégrée :

# Cloud 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

Où placer le fichier de configuration ?

Le fichier de configuration doit être nommé debugger-blacklist.yaml et peut être placé n'importe où dans le chemin de la classe. La racine du fichier .jar, par exemple, constitue un bon emplacement. Les sections suivantes vous expliquent comment procéder.

Avec la commande jar

Vous pouvez insérer ou mettre à jour un fichier de configuration dans un fichier .jar à l'aide de la commande jar. Pour ajouter le fichier de configuration debugger-blacklist.yaml à l'archive TicketTracker.jar, exécutez la commande suivante :

jar uvf TicketTracker.jar debugger-blacklist.yaml

Avec Ant

Pour insérer le fichier de configuration dans un fichier JAR à l'aide du système de développement Ant, utilisez la tâche intégrée jar. Par exemple, la tâche jar permet à la cible distribute suivante d'ajouter le fichier de configuration debugger-blacklist.yaml à l'archive 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>

Avec Maven

Pour insérer le fichier de configuration dans un package géré par le système de développement Maven, placez le fichier debugger-blacklist.yaml dans le répertoire src/main/resources, que vous devrez peut-être créer. Générez le projet et confirmez que debugger-blacklist.yaml a bien été copié dans target/classes.